小编Kam*_*Kam的帖子

ChannelFactory<T>.CreateChannel 如何工作?

如果我有一个接口:

public interface ISomething
{
    void DoAThing();
}
Run Code Online (Sandbox Code Playgroud)

然后我用 ChannelFactory 实例化它:

var channel = new ChannelFactory<ISomething>().CreateChannel
Run Code Online (Sandbox Code Playgroud)

我得到了一个可以使用的实例。

现在,要关闭它,我需要投射:

((IClientChannel)channel).Close
Run Code Online (Sandbox Code Playgroud)

或者

((IChannel)channel).Close
Run Code Online (Sandbox Code Playgroud)

或者

((ICommunicationObject)channel).Close
Run Code Online (Sandbox Code Playgroud)

我的ISomething接口没有继承任何这些接口。

那么CreateChannel方法返回什么样的对象,它是如何构造一个动态对象,该对象能够实现直到运行时才知道的接口?

c# wcf

5
推荐指数
1
解决办法
1303
查看次数

标签 统计

c# ×1

wcf ×1