2016-05-03 7 views
1

フィールドプロパティを、FileHelpers.Dynamic.DelimitedClassBuilderを使用して動的に構築しているレコードクラスに動的に追加しようとしています。クラスオブジェクトの作成に問題はありません。現在、AddField(String)メソッドを使用してフィールドを追加しています。FileHelpers - フィールドオブジェクトの作成

私のアプリケーションが成長するにつれ、さまざまな状況で特定のフィールドプロパティを宣言する必要があります。したがって、同じ意味で、私はFileHelpers.Dynamic.DelimitedFieldBuilderを使用してフィールドオブジェクトを作成し、そのメソッドをAddField(DelimitedFieldBuilder)メソッドを使用してDelimitedClassBuilderオブジェクトに渡したかったのです。

しかし、FileHelpers.Dynamic.DelimitedFieldBuilderを使用して新しいオブジェクトをインスタンス化することはできません。次のコードを発行すると、DelimitedFieldBuilderに2つの引数を取るコンストラクタが含まれていないというエラーが表示されます。

FileHelpers.Dynamic.DelimitedFieldBuilder fb = new FileHelpers.Dynamic.DelimitedFieldBuilder("ClassName", "Type"); 

このクラスが唯一のプロパティは、それに関連付けられていないので、私は実際にこれを実装する方法の種類のスタックだと思わdocumentationを見てみます。それはかなり簡単にすべきだと思われるが、私はそれを把握することができないようだ。助けてくれてありがとう。

答えて

0

ファイルヘルパーの機能に精通していません。しかし、.NETの大部分の関数/メソッドには、通常、クラスのインスタンス化後にプロパティを割り当てる方法があります。

FileHelpers.Dynamic.DelimitedFieldBuilder fb = new FileHelpers.Dynamic.DelimitedFieldBuilder(); 
fb.Whatever = "ClassName"; 
fb.otherwhatever = "Type"; 

だけ刺す:

はこのような何かを試してみてください。それがうまくいくかどうかわかりません。

0

DelimitedFieldBuilderのコンストラクタはinternalです。そのため、あなたのアプローチでは問題が発生します。しかしAddField(String)DelimitedFieldBuilderを返すので、それを使用できるかもしれません。

標準AddField(String)を呼び出す独自のクラスMyFieldBuilderを作成する方が簡単かもしれません。

関連する問題