2012-06-06 4 views
1

Недавно я искал способ создания прокси-объектов, которые программно отражают свойства других объектов. Однако мне не удалось найти какую-либо информацию о том, как сделать что-то подобное, я считаю, что это должно быть возможно, как я заметил в EntityFramework, выполняющем операции LINQ, возвращает объекты-прокси с теми же свойствами, которые могут быть приведены непосредственно к типу, который они представляют ,Создание динамического прокси-объекта

В основном я ищу эту же функциональность, и если бы кто-нибудь мог объяснить, как это работает, я был бы великодушен.

псевдокод:

object proxy = GetDynamicProxy(typeof(ProxyType)); 

Поэтому в основном я искал способ, чтобы получить объект, представляющий ProxyType и метод, как GetDynamicProxy, чтобы получить его.

Thanks, Alex.

+0

Можете ли вы предоставить код или псевдокод, чтобы уточнить, что вы пытаетесь сделать? – PinnyM

+0

Вы имеете в виду ICloneable/MemberwiseClone? –

+0

Добавлен некоторый псевдо-код, чтобы попытаться сделать мои желания более ясными. –

ответ

2

В EF прокси генерируются динамически, исходя из типа сущности и динамически реализующего код. Вам нужно искать динамически скомпилированные сборки, типы и лямбды. System.Reflection.Emit - ваш друг (???). Вот ссылка, которая должна помочь http://msdn.microsoft.com/en-us/library/3y322t50

0

Если ObjectContext имеет ProxyCreationEnabled установлен верно, то

yourContext.CreateObject<YourType>() 

создаст динамическую версию прокси вашего типа, и вы можете заполнить данные.

http://msdn.microsoft.com/en-us/library/dd456853.aspx

Смежные вопросы