Сериализуемый объект с элементами только для чтения? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть этот набор кода, но мне бы очень хотелось, чтобы x и y были доступны только для чтения или публично только с открытым геттером.Обычно в C ++ вы бы сделали сериализатор классом-другом.Есть ли эквивалентный трюк в C #?

public struct z
{
    public int x;
    public int y;
    public z(int a, int b)
    {
        x = a;
        y = b;
    }
}

class Program
{
    static void Main(string[] args)
    {
        List<z> b = new List<z>();
        b.Add(new z(3, 4));
        System.Xml.Serialization.XmlSerializer w  = new System.Xml.Serialization.XmlSerializer(typeof(List<z>));
        System.IO.StringWriter x = new System.IO.StringWriter();
        w.Serialize(x,b);
        System.IO.StringReader y = new System.IO.StringReader(x.ToString());
        List<z> c = (List<z>)w.Deserialize(y);
        Console.WriteLine(b[0].x);
        Console.WriteLine(c[0].x);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...