#castle-dynamicproxy #mixins
#castle-dynamicproxy #mixins
Вопрос:
Является ли использование перехватчиков единственным способом для микшина взаимодействовать с другими миксинами вызывающего класса?
Я собираюсь сделать что-то вроде приведенного ниже.
Псевдокод
class speak
void Greet()
{ Console.WriteLine("Greetings! My Name is " self.firstname); }
class person
string firstname;
SpeakingPersonProxy = MixIn(person,speak);
SpeakingPersonProxy.firstname = "Noneya"
SpeakingPersonProxy.Greet() //produces Greetings! My name is Noneya
self.firstname (или что-то подобное) каким-то образом указывало бы на класс, использующий greet , вместо класса speak. У Ruby есть похожая концепция, которая имеет смысл для динамического языка. Было интересно, как добиться этого в DynamicProxy.
Ответ №1:
Там ничего не встроено, но что вам мешает:
SpeakingPersonProxy = MixIn(person,speak);
speak.Person = person;
итак, другими словами, если speak
hsa хочет знать о своей цели, будьте явны.