1

オブジェクトを作成する C# コードとして、オブジェクトを取り、ストリームにシリアル化できる .Net ライブラリはありますか?

Stream fs = ...;

CSharpFormatter formatter = new CSharpFormatter();

var p = new Person { Name = "Russ", Address = "1024 Oak St" };

formatter.Serialize(fs, p);

この最後に、 fs は、次のような文字列が書き込まれることになります。

new Person { Name = "Russ", Address = "1024 Oak St" };

このようなものは、トリッキーな実行時ケースから単体テストを作成するのに非常に役立つと思います。

4

2 に答える 2

1

これを行うために JSON シリアライザーをハッキングする可能性があります。Person オブジェクトを指定すると、JSON シリアライザーは次のようなものを返す場合があります。

{"name":"Russ","Address":"1024 Oak St"}

そこから、使用Split()Replace()て目的に近づけるのはかなり簡単です。

{ Name = "Russ", Address = "1024 Oak St" }

残りは単なるウィンドウドレッシングです。

于 2012-10-02T04:32:49.690 に答える
0

部分的な回答のみですが、System.CodeDom名前空間のクラスを使用して、この例のようにコードを作成し、 CSharpCodeProviderクラスの GenerateCodeFromXXX メソッドを使用してC# を生成できます。

もう 1 つの方法は、このウォークスルーなどのT4 テキスト テンプレートを使用することです。およびリフレクションですが、Visual Studio が必要です。

于 2012-10-02T04:35:31.450 に答える