我正在使用将对象序列化为 XML System.Xml.Serialization
,这需要我有无参数的构造函数。
因此,我尝试使用对象初始化语法将值分配给某些属性,然后在将对象序列化为 XML 之前根据需要使用构造函数逻辑来格式化这些值。
我的问题是构造函数在属性被赋值之前运行。一个简化的例子如下:
class Program
{
static void Main(string[] args)
{
Foo myFoo = new Foo() { HelloWorld = "Beer", HelloWorldAgain = "More beer" };
Console.WriteLine(myFoo.HelloWorld);
Console.WriteLine(myFoo.HelloWorldAgain);
Console.ReadLine();
}
}
public class Foo : Bar
{
public string HelloWorld { get; set; }
public Foo()
{
Console.WriteLine("Foo Was Initialized");
Console.WriteLine(HelloWorld);
}
}
public abstract class Bar
{
public string HelloWorldAgain { get; set; }
public Bar()
{
Console.WriteLine("Bar was initialized");
Console.WriteLine(HelloWorldAgain);
}
}
这将产生以下输出:
如您所见,构造函数逻辑运行,然后属性被赋值。我需要这个以相反的方式工作。
这可能吗?