我有关于转换/类型等问题。
首先,我的查询来自另一篇文章: Initialize generic object from a System.Type
所以继续这个问题,我怎样才能使用新创建的对象的方法?
即。我想做的是如下:
Type iFace = typeof(IService1);
Type genericListType = typeof(System.ServiceModel.ChannelFactory<>).MakeGenericType(iFace);
object factory = Activator.CreateInstance(genericListType, new object[]
{
new BasicHttpBinding(),
new EndpointAddress("http://localhost:1693/Service.svc")
});
var channel = factory.CreateChannel();
顺便说一句,虽然我正在将此应用程序用于WCF,但这不是WCF问题
答案 0 :(得分:2)
尝试使用dynamic object?这允许您调用可能存在或可能不存在的方法。
答案 1 :(得分:2)
没有动态对象:
object factory = Activator.CreateInstance(genericListType, new object[]
{
new BasicHttpBinding(),
new EndpointAddress("http://localhost:1693/Service.svc")
});
Type factoryType = factory.GetType();
MethodInfo methodInfo = factoryType.GetMethod("CreateChannel");
var channel = methodInfo.Invoke(factory) as YourChannelType;