なぜ私のオブジェクトにservicknowntypeが必要ないのですか?
-
29-09-2019 - |
質問
WCF ServiceContractで使用されているすべてのタイプ(INTや文字列などのプリミティブ以外)をservicnecknownType属性で宣言する必要があることを理解しています。しかし、私はカスタムオブジェクトを構築しました、そして、それは私のWCFサービスを問題なく送信します - 私はそれのためにサービスを追加していませんが。なぜこれが機能するのかを誰かが説明しますか?
[ServiceContract(CallbackContract = typeof(IMyServiceCallback))]
public interface IMyService
{
[OperationContract]
List<MyObject> LoadMyObjects();
}
[DataContract]
public class MyObject
{
[DataMember]
private int batchID;
[DataMember]
private int fileID;
[DataMember]
private string fileName;
[DataMember]
private DateTime importStartTime;
// ...
}
解決
いいえ、それは正しくありません。 servicknownType(またはデータ契約で既知のタイピング)は、サービスで使用されるタイプにのみ必要ですが、操作定義では指定されていません。あなたの場合、MyObjectクラスを使用するLoadMyObjects操作を定義しました。操作はmyobjectを直接使用するため、myobjectをservicknowntypeとして追加する必要はありません。ただし、Myobjectから導出されたMyobject2を定義すると、Myobject2をservicknownTypeとして宣言するまで、loadMyObjects操作からそのオブジェクトを送信できません。
所属していません StackOverflow