我想通過反射消費一個wcf休息服務,如果可能的話。看看下面的代碼:消費.net 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;
}
正如你看到它是一個通用的方法,在運行時需要的...我的問題是,我不知道我是否真能反映信道對象上我正在創建上面....可以說我做了,然後麻煩開始當我想創建一個對象實例...因爲我不能創建一個對象實例從一個接口...
我也會很高興聽到有沒有其他方法可以做到這一點?但是如果可以的話,我更喜歡使用渠道機制。
我試過你的方法,但現在我得到錯誤 System.Reflection.TargetInvocationException:異常已被調用的目標引發。 ---> System.InvalidOperationException:在這個工廠中啓用了手動尋址,所以所有發送的消息都必須預先尋址。 – theKing 2009-10-25 02:17:06
我認爲您需要將WebHttpBehavior添加到您的工廠: factory.Endpoint.Behaviors.Add(新的WebHttpBehavior()); – bobbymcr 2009-10-25 05:07:25
Yess !!,謝謝作品。謝謝一堆 – theKing 2009-10-25 06:46:14