c# - 带有 Mono 2.10 的 CaSTLe 动态代理

标签 c# mono castle-dynamicproxy

我使用 VS 2012/.NET 4.5 构建了一个类库,它使用基于 this article 的 CaSTLe.DynamicProxy 实现延迟加载。 .它在 .NET 中完美运行,但不适用于 Mono,尽管 documents特别说明 DynamicProxy 可与 Mono 2.6 或更高版本一起使用。我得到的众多异常(exception)之一是:

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'Castle.Core'.

我是一个 Mono 菜鸟,所以对于 Mono 专家来说这可能是显而易见的事情。我很沮丧:CaSTLe.DynamicProxy 看起来非常适合我当前的项目。任何帮助将不胜感激。

最佳答案

我不会说 CaSTLe 与 Mono 不兼容。

我实际上将它用于一些项目。我的意思是,我使用使用它的模拟框架。而且效果很好。

CaSTLe 贡献者的实际意思可能是它不能保证 100% 兼容,因为 CaSTLe 套件中的一些单元测试没有通过 Mono 的简单事实。

这些测试未通过的唯一原因是没有人坐下来调查原因并修复 Mono 中的错误。如果有 10 个失败的测试,很可能是 Mono 中有 10 个错误,或者 10 个测试中只有 1 个错误!

鉴于我在 Mono 中使用 CaSTLe 的良好体验,我个人对修复这些错误不感兴趣,因为它们一定只是边缘情况。当我击中它们并且被它们阻止时我会修复它们(就像我对 https://bugzilla.xamarin.com/show_bug.cgi?id=10004 所做的那样),否则不幸的是我没有足够的时间。

这个故事的士气:尝试修复你遇到的 Mono 中的错误(而不是 CaSTLe 遇到的所有错误),这可能需要你 1 或 2 天的调查时间,但稍后你可能会成为之后快乐的 CaSTLe+Mono 用户(和开源贡献者)。

PS:测试 Mono 3.x,你将有更多机会不必调查任何东西,因为错误可能已经修复。

关于c# - 带有 Mono 2.10 的 CaSTLe 动态代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075942/

相关文章:

c# - 迭代器 block 在 IL 中生成 try-fault

C# Windows 窗体 ComboBox 数组代码

c# - Java 多线程/针对 Mono 的基准测试

c# - 在 Travis CI 上使用 Mono 5.14.0.177、msbuild 15.0、nuget 4.7.1 构建失败,但在 VirtualBox 中无法重现

xcode - 在 XCODE 4 中导入单点触控 DLL

c# - White UI Automation库如何使用CaSTLe DynamicProxy?

c# - 从 CaSTLe Windsor 拦截器访问方法的自定义属性

c# - 重新启动崩溃的 exe?

c# - C# 8 中不可为空的引用类型在运行时可以为空吗?

c# - ASP.NET MVC3 Controller AOP 代理不拦截所有方法,只有 IController.Execute