を使用してオブジェクトを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);
}
}
これにより、次の出力が得られます。
ご覧のとおり、コンストラクタロジックが実行され、プロパティに値が割り当てられます。逆に機能するには、これが必要です。
これは可能ですか?