我可以将容器类方法与通用接口的方法集成吗
本文关键字:接口 方法 集成 类方法 我可以 | 更新日期: 2023-09-27 18:00:54
我有一个容器类Foo<TInterface>
,它在构造函数中接受任意接口类型参数和字符串"strCode"。
在实例化Foo时,通过CSharpCodeProvider编译strCode,并通过Reflection将适当的类型定位在新编译的代码中,然后转换为TInterface类型,并在Foo中提升到属性TInterface栏。
这很好,客户端可以访问foo.bar,没有问题。然而,Foo还包含一个名为Recompile的方法(以及其他方法(,该方法基本上以上述方式获取并编译新的代码字符串。这也很好,但这意味着客户端最终会得到一个Foo API,其中的方法组织方式类似于:
foo.bar.MakeCoffee
foo.bar.DoMagic
foo.Recompile
我更喜欢:
foo.MakeCoffee
foo.DoMagic
foo.Recompile
换句话说,我想返回一个类实例,该类实例具有对通用接口方法和Foo API方法的顶级访问权限。
理想情况下,返回Foo<TInterface>
的实例会很好,但我知道C#泛型不允许这样做。如果需要的话,我很乐意发布代码,但首先要确保我不会因为C#的静态类型性质而找错树。
我认为您必须使用像Castle Dynamic proxy或linfu这样的代理库。
你想要达到的目标是什么?你想做AOP吗?