2011-12-29 7 views
0

私はいくつかのコードサンプルを調べていましたが、私はused.Thisクラスがxsdから生成されたように見えます。beginInvokeとDebuggerStepThroughAttributeと他の属性を使用する理由

[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Web.Services.WebServiceBindingAttribute(Name="FlightHistoryGetRecordsSOAPBinding", Namespace="http://www.pathfinder-xml.com/FlightHistoryService.wsdl")] 


[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] 
[return: System.Xml.Serialization.XmlElementAttribute("FlightHistoryGetRecordsResponse", Namespace="http://pathfinder-xml/FlightHistoryService.xsd")] 

はまた、次の方法を理解することができませんでした:

public System.IAsyncResult BeginFlightHistoryGetRecordsOperation(FlightHistoryGetRecordsRequest FlightHistoryGetRecordsRequest, System.AsyncCallback callback, object asyncState) { 
     return this.BeginInvoke("FlightHistoryGetRecordsOperation", new object[] { 
        FlightHistoryGetRecordsRequest}, callback, asyncState); 
    } 

    /// <remarks/> 
    public FlightHistoryGetRecordsResponse EndFlightHistoryGetRecordsOperation(System.IAsyncResult asyncResult) { 
     object[] results = this.EndInvoke(asyncResult); 
     return ((FlightHistoryGetRecordsResponse)(results[0])); 
    } 

だから私は、次の質問があります。それぞれが行う属性ん何
1.。
2.属性でリターンするのは何ですか?
FlightHistoryGetRecordsResponseメソッドで使用されているパラメータは何ですか、なぜそれがthis.BeginInvokeを返すのですか?

答えて

3

1a:DebuggerStepThough属性は、ブレークポイントがヒットし、コーダーがコードをステップ実行しているときに、デバッガーが各行を一時停止するのではなく、このメソッドをスキップすることを示します。

1b:DesignerCategory属性は、Visual Studioのプロパティグリッドなどのデザインタイムコントロールに表示される場合、クラスのグループ化を示します。

1c:WebServiceBinding属性は、Webサービスを表すクラスに名前と名前空間を付加します。

属性は何もしていないこと、メタデータだけを含んでいること、そしてそのメタデータを使って何をするべきかはコードの他の部分に依存していることを理解することが重要です。

2:属性の前のreturn文は、メソッド自体からではなく、メソッドから返される値に属性が適用されることを示します。同様に、メソッドパラメータに属性を適用できます。この場合、属性は戻り値をXMLにシリアライズする方法を記述しています。

3これは、通常の要求/応答Webサービス呼び出しに似ていますが、非同期に変更されています。 AsyncCallbackは、非同期操作が強制されたときに呼び出されるメソッドで、戻り値は他のコード部分から実行中の操作を検査するために使用できるAsyncResultです。これは、非同期メソッド呼び出しの古いパターンであり、この種のコードはもう見つけられません。 See Async Pattern on MSDN...

0

属性の戻り値は、AssemblyInfo.csのアセンブリ:Someattributeに似た、メソッドの戻り値の型に属性を割り当てます。

BeginInvokeはメソッドを非同期に呼び出し、その呼び出しのステータス情報と最終結果を得る方法を示すオブジェクトを返します。

すべての属性の説明については、MSDNのドキュメントを読んで、具体的な質問をすることをお勧めします。

関連する問題