大規模な区切りファイルを検証オブジェクトに効率的に解析するためにC#FileHelpersライブラリを使用しています。FileHelpersを複数の出力プロパティにマップする
しかし、1つの入力ファイルの列を複数の出力クラスプロパティにマップできますが、これを実現する明白な方法が見つかりません。私はITransformableを見てきましたが、操作中にメモリを減らすために別のオブジェクトにマップしたくないので、DynamicFieldBuilder/DynamicClassBuilderオブジェクトを見てきましたが、入力ファイル内で、出力インスタンスに何が含まれるべきではないかを示します。
私は、ファイルを2回読み込んだり、事実の後にある種のオブジェクトとオブジェクトのマッピングを行わないようにしたいと考えています。
入力ファイルの例:
ColumnA|ColumnB
Foo|Baz
出力クラス例:
public class FooBar
{
public string ColumnA_One;
public string ColumnA_Two;
public string ColumnB_One;
public string ColumnB_Two;
}
。 。インデックスを作成するか、それらを順番にキャストする(int)、列挙型フィールド名 – MethodMan
以下の私の例を見てください。私がしたいことではありません。上記の例のような単一の入力ファイルで、FooBarのインスタンスが生成され、ColumnA_OneとColumnA_Twoの両方が 'Foo'に等しく、ColumnB_OneとColumnB_Twoが 'Baz'に等しくなるようにします。 –
はい、でもColumnA_Oneを見てみてください。あなたが望んでいるフィールド名は何ですか?私に送るか、私にすべてのフィールドのリストを表示して、私はあなたのためのenumの例を構築することができます。あなたが使用しているデリミタも私の例では5つの異なるファイルがenum構造を共有し、デリミタとしてカンマを持っています – MethodMan