私は最初のWCFサービスを書いています。私はまずDLLとしてサービスを書いて、次にWCFのものを私が今どこにいるのかをアスペクトにすることに決めました。WCF:MessageContract、DataContract ...混乱していますか?
私は、私が行ったメッセージオブジェクトのための特定のフォーマットに固執すべきであると建築家からアドバイスを受けました。しかし、私はメッセージオブジェクトにInterfaces、複合型、およびそのリストを使用しました。私は属性を追加するために来ていると私は少し混乱している。
ここに私のコードのショーの例があります。
[ServiceContract]
public interface MyServiceContract
{
[OperationContract]
MyMethodResponseMessage MyMethod(MyMethodRequestMessage request);
}
public class MyService : MyServiceContract
{
public MyMethodResponseMessage MyMethod(MyMethodRequestMessage request)
{
//Do things
}
}
//Messages
[MessageContract]
public class MyMethodResponseMessage
{
[MessageBodyMember]
public MyMethodResponse Body { get; set; }
}
[DataContract]
public class MyMethodResponse
{
[DataMember]
public IMyComplexTypeItem { get; set; }
[DataMember]
public List<IMyComplexType> Items { get; set; }
[DataMember]
public bool Success { get; set; }
}
//DTO
public interface IMyComplexType
{
[DataMember]
string Identity { get; set; }
}
[DataContract]
public class MyComplexType1 : IMyComplexType
{
[DataMember]
public virtual string Identity
}
誰もがMessageContract、のDataContract、DataMemberプロパティおよび直列化などの使用に正確にコメントすることができますか?どんな指針や目障りな間違い?
また、どのシリアライザを使用するのが最適ですか?他のクライアントが私のサービスを簡単に使用できるように、これから正しい形のXMLを得るための最良の戦略は何ですか?
おかげでマルク、あなたは基本クラスについて正しいです。それは少し良く働いています。私はOnDeserializingメソッドを見て、頭を上げてください。私はこのためにXmlに拘束されています。 –