मेरे पास एक कक्षा है जिसे मुझे SQLServer सत्र चर में क्रमबद्ध करने और WCF सेवा पर उपलब्ध होने की आवश्यकता है। के रूप मेंमैं उसी वर्ग पर डब्ल्यूसीएफ डाटाकंट्रैक्ट और आईएसरियलज़ेबल का उपयोग क्यों नहीं कर सकता?
namespace MyNM
{
[Serializable]
[DataContract(Name = "Foo", Namespace = "http://www.mydomain.co.uk")]
public class Foo : IEntity, ISafeCopy<Foo>
{
[DataMember(Order = 0)]
public virtual Guid Id { get; set; }
[DataMember(Order = 1)]
public virtual string a { get; set; }
DataMember(Order = 2)]
public virtual Bar c { get; set; }
/* ISafeCopy implementation */
}
[Serializable]
[DataContract(Name = "Bar ", Namespace = "http://www.mydomain.co.uk")]
public class Bar : IEntity, ISafeCopy<Bar>
{
#region Implementation of IEntity
DataMember(Order = 0)]
public virtual Guid Id { get; set; }
[DataMember(Order = 1)]
public virtual Baz y { get; set; }
#endregion
/* ISafeCopy implementation*/
}
[Serializable]
[DataContract]
public enum Baz
{
[EnumMember(Value = "one")]
one,
[EnumMember(Value = "two")]
two,
[EnumMember(Value = "three")]
three
}
इस प्रकार मैं इसे घोषित किया है लेकिन जब मैं कोशिश करते हैं और इस सेवा को कॉल, मैं ट्रेस लॉग में निम्न त्रुटि मिलता है।
"System.Runtime.Serialization.InvalidDataContractException: प्रकार 'BarProxybcb100e8617f40ceaa832fe4bb94533c' ISerializable नहीं हो सकता है और DataContractAttribute विशेषता हो सकता है।"
यदि मैं सीरियलज़ेबल विशेषता लेता हूं, तो डब्ल्यूसीएफ सेवा काम करती है, लेकिन जब ऑब्जेक्ट को सत्र में क्रमबद्ध नहीं किया जा सकता है। अगर मैं वर्ग बार से DataContract विशेषता निकालने के लिए, WCF सेवा कह विफल रहता है
प्रकार 'BarProxy3bb05a31167f4ba492909ec941a54533' साथ डेटा अनुबंध नाम 'BarProxy3bb05a31167f4ba492909ec941a54533: http://schemas.datacontract.org/2004/07/' की उम्मीद नहीं है। उदाहरण के लिए, उन्हें जाना जाता है प्रकार DataContractSerializer
के लिए पारित की सूची मैं जोड़ने की कोशिश की है को जोड़ने KnownTypeAttribute विशेषता का उपयोग करके या द्वारा - किसी भी प्रकार नहीं जाना जाता प्रकार की सूची को स्थिर जाना जाता जोड़े foo वर्ग के लिए एक KnownType विशेषता
[KnownType(typeof(Bar))]
लेकिन मैं अभी भी एक ही त्रुटि मिलती है।
क्या कोई इस से मेरी सहायता कर सकता है?
बहुत धन्यवाद
डेव
धन्यवाद, मुझे अब इसका एक पठन होगा। – Dave
धन्यवाद - अंत में, मैंने जो किया वह मेरी कक्षाओं की प्रतियां बना रहा और उन्हें सेवा में वापस कर दिया। – Dave
फ़ोरम वर्तमान में रखरखाव के लिए नीचे दिए गए लिंक के बजाय वास्तविक उत्तर देने के लिए अच्छा होगा ... –