2

我使用 VS 2012/.NET 4.5 构建了一个类库,该类库根据这篇文章使用 Castle.DynamicProxy 实现延迟加载。它在 .NET 中完美运行,但不能与 Mono 一起使用,尽管文档明确指出 DynamicProxy 可与 Mono 2.6 或更高版本一起使用。我得到的众多例外之一是:

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

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

4

2 回答 2

1

我不会说 Castle 与 Mono 不兼容。

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

Castle 贡献者的实际意思可能是它不能保证 100% 兼容,因为 Castle 套件中的某些单元测试不会通过 Mono。

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

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

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

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

于 2013-02-27T22:11:32.463 回答
0

没关系:我刚收到 Castle 贡献者之一的回复,但文档有误:Castle.DynamicProxy 与 Mono 不兼容。他说他会更改文档,所以希望没有其他人会犯同样的错误!干杯。

于 2013-02-25T20:41:23.857 回答