Так ведь конструктор ViewModel, выходит, все равно будет содержать весь этот цирк. Это никак не решает проблему. Чисто технически инжектировать даже в 100 зависимостей конструктора не проблема. Но вод SRP будет злостно нарушен.
Это у вас игра такая? Я же реально ответа не знал, потому и спросил…
Это сериализуется нормально
var test1 = new Test() { Prop = 5 };
var test2 = new Test();
var writer1 = new StringWriter();
var writer2 = new StringWriter();
new XmlSerializer(typeof(Test)).Serialize(writer1, test1);
new XmlSerializer(typeof(Test)).Serialize(writer2, test2);
Console.WriteLine(writer1.ToString());
Console.WriteLine(writer2.ToString());
class Program
{
static void Main(string[] args)
{
var xml1 = XDocument.Parse("<Test><Prop>5</Prop></Test>");
var test1 = new XmlSerializer(typeof(Test)).Deserialize(xml1.CreateReader()) as Test;
var xml2 = XDocument.Parse("<Test></Test>");
var test2 = new XmlSerializer(typeof(Test)).Deserialize(xml2.CreateReader()) as Test;
Console.WriteLine(test1.Prop.HasValue);
Console.WriteLine(test2.Prop.HasValue);
}
}
public class Test
{
public int? Prop { get; set; }
}
writer2:
Это сериализуется нормально
Сейчас запустил это
Вывод:
true
false