WCF'yi her kullandığımda, her zaman telin üzerinden geçen (yani kurucuda ayarlanan parametreler, salt okunur) sonlanan değişmez sınıflar yapmayı denerim. Bununla birlikte, bu, tüm özelliklerin Public get/set olmasını gerektiren WCF serileştirme sürecine girer (bu da mantıklıdır, çünkü bunları deserialize eder)WCF DataContract salt okunur özelliklerin serileştirilmesi?
this related post bile, onların çözümlerinin herşeyi çözdüğünü görüyorum. Kamu, iyi programlama anlayışımı ihlal ediyor. Bunun etrafında bir yolu var mı? Bu çözümü ya da buzlu şeker değişmezliği gibi bir şey için yerleşmek ve onunla mutlu olmak zorunda mıyım? Eğer DataContractSerializer (kullanırsanız hangi
/// <summary>
/// This represents a discovered virtual-machine template that can be
/// instantiated into a RunningVirtualMachine
/// </summary>
[DataContract]
[XmlRoot("VMTemplate")]
public class VirtualMachineTemplateBase
{
[DataMember]
public virtual ulong SizeInBytes { get; set; }
}
/// <summary>
/// This class is the real guts of VirtualMachineTemplate that we're hiding
/// from the base class.
/// </summary>
[XmlInclude(typeof(VirtualMachineTemplateBase))]
public class VirtualMachineTemplate : VirtualMachineTemplateBase, IXmlPicklable, IEnableLogger
{
ulong _SizeInBytes;
public override ulong SizeInBytes {
get { return _SizeInBytes; }
set { }
}
}
Hayır, yine de kümeyi eklemeniz gerekir veya başarısız olur. – Craig
SerializeReadOnlyTypes'i DataContractSerializerSettings'de true olarak ayarlayabilirsiniz. –
Av, blog yazısı bağlantıları petethepagan-gerbil @ ölü şimdi :( –