相关疑难解决方法(0)

可以序列化属性的内部setter吗?

有没有办法在C#中使用内部setter序列化属性?
我知道这可能有问题 - 但如果有办法 - 我想知道.

例:

[Serializable]
public class Person
{
    public int ID { get; internal set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

序列化类Person实例的代码:

Person person = new Person();
person.Age = 27;
person.Name = "Patrik";
person.ID = 1;

XmlSerializer serializer = new XmlSerializer(typeof(Person));
TextWriter writer = new StreamWriter(@"c:\test.xml");
serializer.Serialize(writer, person);
writer.Close();
Run Code Online (Sandbox Code Playgroud)

结果(缺少ID属性):

<?xml version="1.0" encoding="utf-8"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>Patrik</Name>
  <Age>27</Age>
</Person>
Run Code Online (Sandbox Code Playgroud)

.net c# serialization

28
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

serialization ×1