何ヶ月か前に、私はWCFメソッドとそのパラメータをドロップダウンに表示するプロジェクトを行っていました。当時私はサービス参照の追加を使用してプロキシを作成し、コード内にサービスインターフェイスをハードコードしていました。 How can I show all the methods that are available in my WCF in a dropdown しかし、同じようにプロキシを動的に作成しようとすると、以下のコードは機能しません。私が定義した方法だけを表示するのを助けてください。動的に作成されたプロキシのWCFメソッドをフィルタリングできません
// Using Dynamic Proxy Factory by Vipul Modi @ Microsoft
DynamicProxyFactory factory = new DynamicProxyFactory(txtService.Text);
// endpoints.
string sContract = "";
foreach (ServiceEndpoint endpoint in factory.Endpoints)
{
sContract = endpoint.Contract.Name; //this is the service interface name, IAccountInfoService
}
DynamicProxy proxy = factory.CreateProxy(sContract);
Type proxyType = proxy.ProxyType;
MethodInfo[] methods = proxyType.GetMethods();
foreach (var method in methods)
{
//if (method.GetCustomAttributes(typeof(OperationContractAttribute), true).Length == 0)
// continue;
string methodName = method.Name;
ddlMethods.Items.Add(methodName);
}
コードが.LENGTHが動作しないmethod.GetCustomAttributes(typeof演算(OperationContractAttribute)、true)をコメントしました。それはどんな方法も示していません。私がコメントアウトすると、結果はすべてのメソッドと変数になります。私はそれをユーザー定義のメソッドだけに制限したい。
私は実際にメソッド名を取得したいし、その後に定義されている各メソッドのパラメータリストサービス契約。 ContractDescriptionとOperationDescriptionを使用すると、メソッドのリストを取得できますが、パラメータを取得する方法はわかりません。 –