私は、WebからHTMLテーブルを取得してオブジェクトに変換するライブラリを作成しています。オブジェクトに直接データをマッピングするC#
config.Column().Text().MapTo(/*Class.TextPropertyName*/); //What I want to be able to do
config.Column().Date().MapTo(/*Class.DatePropertyName*/);
上記のコードは(最初の関数が作成されますのでご注意私が構成で行うことができるようにしたいものの一般的な考え方です:私は、特定のテーブルがレイアウトされている方法を事前に設定することColumnConfiguratorオブジェクトを持っています新しい列を返し、それを返し、その後のメソッドは、オブジェクトの設定を設定します)、テーブルがマップされているとき私はMapToに渡されたパラメータを取得し、自動的に特定のオブジェクトの正しいプロパティに解決する。
ここで私は最も混乱しています。理論的にはどのオブジェクトにもマップできるように、メインテーブルオブジェクトを汎用(ParsingTable<T>
)にします。つまり、事前に利用可能なプロパティはありません。私はT.Property
をメソッドに渡して、オートマトンする方法を知っています。これを行う方法はありますか?私は反射について少しは読んだが、それはパフォーマンスにとって悪いと聞いた。
あなたは多くは正確にあなたが求めているものを理解することはその容易ではないので、ここで起こっています。 'var item = config.SomeMethod()。SomeOtherMethod();'のような構文をしたいなら、**拡張メソッド**が必要です。リフレクションせずにプロパティを設定したジェネリックを使用する場合は、共通の抽象クラス(つまり、インタフェース、抽象クラス、基本クラス)を見つけて、汎用メソッドをその抽象クラスに限定する必要があります。その後、汎用メソッドからその抽象メンバのいずれかにアクセスできます。 – maccettura