对象的C#包装器

Hag*_*gai 5 c# wrapper

我正在寻找一种为任何对象创建通用包装器的方法.
包装器对象的行为就像它包装的类一样,但是可以有更多的属性,变量,方法等,例如对象计数,缓存等.

假设包装类叫做Wrapper,要包装的类叫做Square,并且有构造函数Square(double edge_len)和属性/方法EdgeLengthArea,我想用它如下:

Wrapper<Square> mySquare = new Wrapper<Square>(2.5);  /* or */ new Square(2.5);
Console.Write("Edge {0} -> Area {1}", mySquare.EdgeLength, mySquare.Area);
Run Code Online (Sandbox Code Playgroud)

显然我可以为我想要包装的每个类创建一个这样的包装类,但我正在寻找一个通用的解决方案,即Wrapper<T>可以处理原始类型和复合类型(尽管在我目前的情况下,我会很高兴只包装我自己的类).

建议?

谢谢.