开发者

Not able to filter WCF methods for dynamically created proxy

Some months back I was working on a project to display the WCF methods and thier parameters in a dropdown. At that time I was creating a proxy using Add Service Reference and hardcoded the service interface in the code. How can I show all the methods that are available in my WCF in a dropdown But when I try to create the proxy dynamically to do the same, the below code doesn't work. Please help me to show only the methods that was defined by me.

// 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);
}

The code commented method.GetCustomAttributes(typeof(OperationContractAttribute), true).Length doesn't work. It doesn't show any method. If I comment it out, then the result is all methods and variables.开发者_开发百科 I want to restrict it to only user defined methods.


i dont know anything about DynamicProxyFactory but looking at http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx it makes me think that

1) the proxy doesnt actually emit methods with the attribute. it doesn't seem to have a need to though i suppose you could tweak the code on your own to make that happen.

2) if you just want a list of method names, it seems you can get that from factory.Contracts

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜