1

Entity Framework が部分信頼をサポートしていることは知っています。私は個人的にそれについてブログを書きました。

正常に動作していました。テストしましたが、問題ありませんでした。この件に関する私の投稿に添付されているサンプルをダウンロードすると、デフォルトの部分信頼では動作しなくなります!!!

失敗の位置でリフレクターを使用してSystem.Data.Entityアセンブリを掘り下げたとき「System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle、MethodInfo&setterMethodInfo、Type&realType」)次のようなRuntimeMethodHandle.Valueプロパティを呼び出すことに気付きましたget アクセサーの属性 "[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)]"

そこで、中程度の信頼構成に移動し、別のフラグ「UnmanagedCode」を追加しました""

アプリケーションを再度テストしたところ、問題なく動作しました。

いったいこれは何のことだ!? 以前は機能していたのに、なぜ今は機能していないのですか! 何か足りない!!!System.Data.Entity は、VS.NET 2008 SP1 へのいくつかの頻繁な更新の投稿中に変更され、最新のものは 2009 年 8 月に作成されました。その日付以前は正常に動作していたためです。

ですから、これを明確にして、私が間違っているか、欠けているものがあれば教えていただければ幸いです。

4

2 に答える 2

1

Entity Framework への重大な変更の決定的な証拠があるようです。http://connect.microsoft.com/にアクセスして、バグを報告します。「UnmanagedCode=true」属性のない古いアセンブリを見つけることで、変更が行われたことを確認できれば、おそらく役立つでしょう。バグ レポートに両方のバージョンを含めます。

ちなみにReflectorのRuntimeMethodHandleを見ただけです。Value の get アクセサーは「this.m_ptr;」を返します。属性装飾はありません。これは mscorlib にあります。私のバージョンは 2.0.0.0 です (開発システムで .NET 3.5 を実行しています)。

于 2009-09-15T13:54:14.463 に答える