Я использую стороннюю библиотеку для выполнения некоторой работы. Я передаю объект в lib и выполняю некоторые действия над каждым свойством объекта. Он перечисляет свойства с использованием отражения. Вот как это реализовано, и я не могу его изменить.Как добавить свойства объекта во время выполнения в .net?
Я не знаю, какие и сколько свойств должно обрабатывать lib во время компиляции. Эта информация доступна только во время выполнения. Поэтому я не могу создать объявление класса в своем исходном коде.
Кажется dynamic
особенность .net4 не может мне помочь, потому что lib использует отражение, а не динамику.
На самом деле я могу видеть только два варианта здесь:
создать огромное определение класса, как это:
class Data { public object P1 {get; set;} public object P2 {get; set;} .... public object PN {get; set;} // N should be at least 10.000 }
Генерировать определение класса во время выполнения и использовать
CSharpCodeProvider
скомпилировать его использовать.
Можете ли вы предложить мне другие варианты?
И, к сожалению, я не могу заменить этот lib другим.
могли бы вы предоставить более подробную информацию о Lib вы используете? – arul