如何解决这个 WCF ChannelFactory 类型的怪异怎么可能?
ChannelFactory<T> factory = ...;
var channel = factory.CreateChannel();
channel.GetType().IsInterface; // true -> what? an instance of interface?
channel is IClientChannel; // true
channel.GetType().GetInterfaces(); // empty array -> so does it really implement IClientChannel or does it not?
请查看提供的代码示例。
我知道 WCF 会动态编译 __TransparentProxy
但它如何隐藏 channel
类型以使该对象看起来像接口的实例?
如何获得 channel
的真实类型及其实际实现的接口列表?
解决方法
AFAIK
channel
是接口的实例,而不是类。至少代码是这么看的。虽然那里大概有一个实际的类,但在这段代码中,它被视为类似于接口的实例。
那个接口没有实现其他接口,所以 GetInterfaces()
是空的。
关于如何获取接口背后的实际类 - 这应该是一个单独的问题。 (而且,我不知道该怎么做。)但请先检查一下 - 之前这里好像有人问过这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。