我想知道 .NET 世界中是否有其他类似的开源解决方案,尤其是对于 2.0 框架
3 回答
我刚刚偶然发现ObjectCastor的目标是:
基本上,它使用 System.CodeDom 机制生成一个新的代理类,它包装了 sourceType 并实现了 interfaceType 接口。在 .NET Reflection 的帮助下,它遍历 interfaceType 类型的成员,并在代理类中生成相应的成员。之后,它使用 CodeDomProvider 类并调用 CompileAssemblyFromDom 方法编译生成的类。至此,生成的类就编译好了,最后要做的就是创建代理类的新实例,并提供源对象作为构造函数。实用程序类和演示应用程序的完整源代码可在上面的下载部分中找到。
这种技术现在被用于CS Script中。从 CSScript 帮助文件:
在 2.3.3 版本中,CS-Script 引入了新的脚本托管模型接口对齐,这是在通过接口加载/访问脚本时接口继承的一个有吸引力的替代方案。
该模型允许通过将脚本“对齐”到适当的界面(DuckTyping)来操作脚本。这种方法的重要方面是脚本执行是完全类型安全的(与通过接口访问的任何脚本一样),但更重要的是脚本不必实现主机应用程序使用的接口。在某种程度上,接口对齐是一种强制类型转换:只要对象具有接口中定义的所有方法,就可以将类型转换为接口。这种有前途的技术允许在主机和脚本业务逻辑之间进行高级别的解耦,而不会损害任何类型安全性。
哟可以使用 CSLA.NET。它提供了地图功能。