我想知道,因为没有办法像这样在 C# 中实现一个通用的装饰器类(是吗?):
public class Decorator<TDecoratorIterface> : TDecoratorInterface
{
public TDecoratorInterface Component {get; private set;}
protected Decorator(TDecoratorInterface component)
{
Component = component;
}
}
像这样使用:
public interface IDogDecorator
{
void Bark();
}
public class Dog : IDogDecorator
{
public void Bark()
{
Console.Write("I am a dog");
}
}
public class StinkingDog : Decorator<IDogDecorator>
{
public StinkingDog(IDogDecorator dog):base(dog)
{
}
public void Bark()
{
Component.Bark();
Console.WriteLine(" and I stink");
}
}
这样的事情可以通过 PostSharp 或任何其他 .NET 的 AOP 框架来管理吗?
感谢您的回答,我花了半天时间尝试创建这样的构造,但没有成功,因此感谢您的帮助:)