Cook Computing博客有一篇文章,討論如何使用.NET 4中的動態來創建動態RPC調用。 (郵編:ALTERNATIVE SYNTAX FOR MEMBER CALLS ON C# DYNAMIC TYPES)XML-RPC.NET和C#動態類型
的後顯示下面的例子:
using System.Dynamic;
class XmlRpcClient : DynamicObject
{
string endpoint;
public XmlRpcClient(string endpoint)
{
this.endpoint = endpoint;
}
public object Invoke(string methodName, object[] args)
{
return 5; // actually make call to XML-RPC endpoint here
}
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args,
out object result)
{
result = Invoke(binder.Name, args);
return true;
}
}
我不明白的部分是註釋,指出「實際上使這裏調用XML-RPC端點」。
有沒有辦法在invoke方法中使用XML-RPC.NET庫,或者你需要做一個HttpWebRequest調用?
感謝
使用這個的目的是什麼?您是不是正在調用具有靜態定義方法的XML-RPC服務? – mellamokb
使用XML-RPC.NET庫時,您必須定義一個代表您所調用服務的接口。我想使用動態,因爲我將調用xml-rpc服務的多個版本。我試圖避免爲每個我將遇到的服務版本定義一個接口。 –
我不確定XML-RPC如何能夠與沒有接口的服務進行通信,因爲接口通過XmlRpcService超類和裝飾方法的屬性來處理通信。您幾乎必須對庫進行反向工程,以查看它是如何發生的,正如您在帖子中所述,手動進行HttpWebRequest調用。 – mellamokb