2

この記事を元に、Castle.DynamicProxy で遅延読み込みを実装する VS 2012/.NET 4.5 を使用してクラス ライブラリを構築しました。DynamicProxy は Mono 2.6 以降で動作するとドキュメントに具体的に記載されているにもかかわらず、.NET では完全に動作しますが、Mono では動作しません。私が得る多くの例外の1つはこれです:

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

私はモノの初心者なので、モノの専門家には明らかなことかもしれません。私はがっかりしました: Castle.DynamicProxy は、私の現在のプロジェクトにとって本当に良さそうでした。どんな助けでも大歓迎です。

4

2 に答える 2

1

CastleがMonoと互換性がないとは言えません。

私は実際にいくつかのプロジェクトでそれを使用しています。つまり、それを使用するモックフレームワークを使用します。そしてそれは美しく働きます。

Castleの貢献者が実際に意味するのは、Castleスイートの一部のユニットテストがMonoに合格しないという単純な事実により、100%の互換性が保証されていないということです。

これらのテストに合格しなかった唯一の理由は、Monoのバグを調査して修正するために誰も座っていないことです。失敗したテストが10個ある場合は、Monoに10個のバグがあるか、10個のテストで1個だけヒットしている可能性があります。

Castle in Monoでのかなりの経験を考えると、これらのバグは単なるエッジケースであるに違いないため、個人的にはこれらのバグを修正することに興味はありません。それらをヒットしたときに修正し、(https://bugzilla.xamarin.com/show_bug.cgi?id=10004で行ったように)ブロックされます。そうしないと、残念ながら十分な時間がありません。

ストーリーの士気:(Castleがヒットしているすべてのバグではなく)ヒットしているMonoのバグを修正してみてください。調査には、1〜2日かかる場合がありますが、後で幸せなCastle+になる可能性があります。その後、モノユーザー(およびオープンソースの寄稿者)。

PS:Mono 3.xをテストしてください。バグはすでに修正されている可能性があるため、何も調査する必要がない可能性が高くなります。

于 2013-02-27T22:11:32.463 に答える
0

気にしないでください:Castleの寄稿者の1人から応答があり、ドキュメントが間違っています:Castle.DynamicProxyはMonoと互換性がありません。彼はドキュメントを変更すると言ったので、他の誰も私がしたのと同じ間違いをしないことを願っています!乾杯。

于 2013-02-25T20:41:23.857 に答える