Могут ли миксины взаимодействовать с классом, использующим его в DynamicProxy?

#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 хочет знать о своей цели, будьте явны.