2012-02-20 5 views
0

私は特定のクラスでwebserviceを継承し、実行時には、私は、特定のクラスを継承するwebserviceクラスで宣言されているwebmethodのみを取得したいと思います... WebServiceクラスを継承するクラスからwebmethodのみを取得したい。reflactionクラスを使用して実行時にクラス内のすべてのwebmethodのみを取得する方法はありますか?

+0

webserviceクラスではどういう意味ですか? SoapHttpClientProtocolクラスから継承したクライアントサイドのWebサービスプロキシクラスを意味しますか?回答のために – brgerner

答えて

0

リフレクションを使用すると、クラスのすべてのメソッドを取得し、どのオブジェクトが[OperationContract]属性を持つかを確認できます。

var methods = typeof(Service1).GetMethods() 
           .Where(meth => meth.GetCustomAttributes(true) 
               .Where(attr => attr is OperationContractAttribute) 
               .Count() > 0); 

GetCustomAttributesでブールフラグに「真」を指定することで、コードがメソッドの全体の継承チェーンから属性を引っ張ってくる次のようにあなたは、単一のステートメントでこれを行うためにLINQを使用することができます。

+0

おしゃべり! –

関連する問題