我使用VS 2012 / .NET 4.5构建了一个类库,该库使用基于this article的Castle.DynamicProxy实现延迟加载。它在.NET中完美运行,但不适用于Mono,尽管documents具体说明DynamicProxy可以与Mono 2.6或更高版本配合使用。我得到的许多例外之一是:
Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'Castle.Core'.
我是Mono noob,所以也许这对Mono专家来说是显而易见的。我很沮丧:Castle.DynamicProxy对我目前的项目看起来非常好。任何帮助将不胜感激。
答案 0 :(得分:1)
我不会说Castle与Mono不相容。
我实际上将它用于某些项目。我的意思是,我使用使用它的模拟框架。而且效果很好。
Castle贡献者实际上可能意味着的是,它不能保证100%兼容,因为Castle套件中的某些单元测试不会传递Mono。
这些测试没有通过的唯一原因是没有人坐下来调查原因并修复Mono中的错误。如果有10个失败的测试,很可能是Mono中有10个bug,或者只有1个在10个测试中被击中!
鉴于我在Mono中使用Castle的经验非常好,我个人对修复这些错误并不感兴趣,因为它们必须只是边缘情况。当我碰到它们时我会修复它们并且被它们阻挡(就像我使用https://bugzilla.xamarin.com/show_bug.cgi?id=10004一样),否则我没有足够的时间。
故事的故事:尝试修复你正在击中的Mono中的错误(而不是所有城堡正在击中的那些),它可能需要你1或2天的调查,但是后来你可能是一个之后是快乐城堡+单人用户(和开源贡献者)。
PS:测试Mono 3.x,你将有更多的机会不必调查任何东西,因为这个bug可能已经修复了。
答案 1 :(得分:0)
没关系:我刚收到一位Castle贡献者的回复,文档错误:Castle.DynamicProxy与Mono不兼容。他说他会改变文档,所以希望没有其他人会犯同样的错误!欢呼声。