从C#客户端调用远程COM + ServicedComponent

Car*_*rra 6 .net com+

我有一个服务组件安装在COM +服务器应用程序中.我想从远程客户端创建一个实例.客户端需要能够动态指定服务器计算机的名称.我该怎么做呢?

我尝试过使用Activator:

            (XSLTransComponent.XSLTransformer)Activator.GetObject(
                        typeof(XSLTransComponent.XSLTransformer),
                        serverName
                        );
Run Code Online (Sandbox Code Playgroud)

但我明白了:

System.Runtime.Remoting.RemotingException:无法创建通道接收器以连接到URL"服务器".可能尚未注册适当的频道.在System.Runtime.Remoting.RemotingServices.Unmarshal(类型classToProxy,String url,Object data)

我需要注册一个频道吗?如果是这样,怎么样?

另一个想法是使用Marshall.BindToMoniker,但是如何为服务器x上的COM +上托管的远程对象指定名字对象?

Car*_*rra 3

尤里卡!这有效:

string serverName = serverTextBox.Text;
Type remote = Type.GetTypeFromProgID("XSLTransComponent.XSLTransformer", serverName);
return (XSLTransComponent.XSLTransformer)Activator.CreateInstance(remote);
Run Code Online (Sandbox Code Playgroud)

感谢这个问题