如果可能的话,我正在尝试通过反射来使用 wcf 休息服务。看看下面的代码:
public static object WCFRestClient<T>(string method, string uri, params object[] args)
{
object o;
object ret;
using (ChannelFactory<T> cf = new ChannelFactory<T>(new WebHttpBinding(), uri))
{
T contract = cf.CreateChannel();
ret = contract.GetType().GetMethod(method).Invoke(o, args);
}
return ret;
}
如您所见,这是一个在运行时需要 T 的通用方法...我的麻烦是,我不确定我是否真的可以反映我在上面创建的通道对象...。假设我可以,那么麻烦当我想创建一个对象实例时开始......因为我无法从接口创建一个对象实例......
我也很高兴听到是否有其他方法可以做到这一点?但如果可以的话,我更喜欢使用通道机制。