Я изменил общественную собственность класса защищаемогоDataContractSerializer не будет сериализовать Защищенные свойства
public class SlideSet : UserModifiable.Properties, Validation.IValidateable
{
public virtual ICollection<Slide> Slides { get; set; }
в
public class SlideSet : UserModifiable.Properties, Validation.IValidateable
{
[DataMember]
protected virtual ICollection<Slide> Slides { get; set; }
но теперь DataContractSerializer больше не упорядочивает его XML. Мое впечатление from the docs заключалось в том, что атрибут DataMember
был единственным, что необходимо для этого.
Это моя сериализации реализация
public string ToXml(Object obj) {
// set up DataContractSerializer to use the .NET ProxyDataContractResolver, which helps us to serialize EF objects
var entityType = ObjectContext.GetObjectType(obj.GetType());
var knownTypes = ObjectContext.GetKnownProxyTypes();
var resolver = new ProxyDataContractResolver();
var serializer = new DataContractSerializer(entityType, entityType.Name, string.Empty, knownTypes, 1000, true, true, null, resolver);
// serialize to XML string
var stream = new MemoryStream();
serializer.WriteObject(stream, obj);
stream.Seek(0, SeekOrigin.Begin);
return Encoding.UTF8.GetString(stream.ToArray());
}
Почему моя собственность защищена не получает сериализовать?
@JustinNiessner Нет, как это должно быть использовано? Это все работает нормально, пока все публично –
@JustinNiessner, который действительно работает, спасибо. Хотя xml теперь представляет собой совершенно другой формат по какой-то причине –
Я переключил свой комментарий на ответ и удалю остальные комментарии. –