Предоставьте пользовательскую информацию об отражении (PropertyInfo) из DynamicObject [дубликат]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Предоставьте пользовательскую информацию об отражении (PropertyInfo) из DynamicObject [дубликат]

Сообщение Гость »


У меня есть объекты типа DynamicObject. Эти объекты будут использоваться библиотеками, которые работают с членами и используют отражение. Мне интересно, есть ли способ добиться следующего, то есть заставить отражение возвращать правильную информацию о члене (PropertyInfo):

Код: Выделить всё

  public class TestDO : DynamicObject {
...
}

typeof(TestDO).getProperty("SomeProp"); // make this not return null
I strongly assume it's not possible. In that case, an explanation of why this will never work (Why can't there be such a hook into the reflection system) and potentially an alternative would be nice.
Some ideas are:
  • Is it possible to generate the type information at runtime, so that I can just use typeof(MyJITCreatedType) (something like byte buddy in the Java world)?
  • I have seen ICustomTypeProvider, but have no idea if that can be used (does not even exist in my project currently)?
  • Is there some hook in DynamicObject I can implement?
Note:
  • I cannot change the way the library consumes my object/uses reflection.
  • I can potentially give information about which type is used (i.e. MyJITCreatedType instead of TestDO).
  • I know the properties at runtime.
  • I can change the implementation of TestDO
EDIT: This is not a duplicate of how-do-i-reflect-over-the-members-of-dynamic-object, as I am not interested in finding out the members (I know those), but interested in hooking into the System.Reflection mechanism, so that frameworks/libraries can use my dynamic object.


Источник: https://stackoverflow.com/questions/781 ... amicobject
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»