0

WCFサービスを作成するときは、SrviceContract(インターフェイス)、OperationCOntract(メソッド)、およびDataContract(クラスタイプ)があります。

DataContractなしでOperationContractを使用できるかどうか疑問に思っています。はいの場合、どの例も大いに役立ちます。

あなたの時間を感謝します。

ありがとう

4

2 に答える 2

3

このDataContract属性は、サービスの署名で使用されるクラスを表すだけです。したがって、サービスがどのクラスも参照する必要がない場合、DataContract属性はどこにもありません。

たとえば、文字列や数値などのプリミティブ型を受け入れて返すメソッドしかない場合は、独自のクラスを定義する必要はありません。

于 2012-10-24T22:10:54.623 に答える
3

なぜこれが必要なのかわかりませんが、プリミティブとnullable(文字列、日付、int?sなど)と同じもののリスト/配列のみを返すおよび/または渡す場合は、必要ありませんデータ コントラクトを作成します。渡したい構造化データには、DataContract 属性が必要です。そうしないと、例外がスローされます。

だから、うまくいくいくつかの例は...

[ServiceContract]
public interface ISimpleContract
{
    [OperationContract] void DoSomething();
    [OperationContract] int GetNumber();
    [OperationContract] string GetStatus(int userId);
    [OperationContract] string[] GetCodes(int? byDepartment);
    [OperationContract] List<int> GetNumberOfStrings(string[] strings); 
}
于 2012-10-24T22:13:17.460 に答える