public static INetworkConnection Resolve(ConnectionDefinition definition) { INetworkConnection connection; switch (definition.type) { case ConnectionType.tcp_client: case ConnectionType.tcp_server: connection = new TCPConnection(definition); break; case ConnectionType.udp: connection = new UDPConnection(definition); break; case ConnectionType.websocket: connection = new WebSocketConnection(definition); break; default: throw new NotImplementedException(); } return(connection); }