Сгенерить прокси для объекта.
От: Kubyshev Andrey  
Дата: 05.07.13 17:59
Оценка:
Всем привет,
У меня есть тип А, он sealed и я не могу от него наследоваться.
Но зато я могу его энкапсулировать и все его интерфейсы реализовать вызывая тоже самое у приватного объект этого самого типа.

Так как тип такой не один, и ф-ций много хотелось бы сгенерить все сразу как нибудь для С#, а не ручками писать типа

int IComplexInterface.GetData(){
return MyComplexObj.GetData();
}
и так 100500 раз..

Подскажите как.
Re: Сгенерить прокси для объекта.
От: baranovda Российская Империя  
Дата: 05.07.13 19:23
Оценка: +1
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Подскажите как.


Reflection + CodeDom. У меня так 400 классов и интерфейсов налабано (кодогенерилки в сорцах правда нету).
Re: Сгенерить прокси для объекта.
От: Doc Россия http://andrey.moveax.ru
Дата: 06.07.13 03:17
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Всем привет,

KA>У меня есть тип А, он sealed и я не могу от него наследоваться.
KA>Но зато я могу его энкапсулировать и все его интерфейсы реализовать вызывая тоже самое у приватного объект этого самого типа.

[режим ворчания]это не прокси, а декоратор[/режим ворчания]

KA>Так как тип такой не один, и ф-ций много хотелось бы сгенерить все сразу как нибудь для С#, а не ручками писать типа


Может подобный подход поможет (быстро в создании, но медленнее в работе чем просто вызовы)
http://andrey.moveax.ru/post/csharp-patterns-dynamic-decorator.aspx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.