2010-12-02 10 views
2

私は現在MEFをプラグインアーキテクチャで使用しています。私は自分のコードを難読化しようとしており、それがMEFとそれが発見されたかどうかに関心がありました。私はプラグインを解決するためにDirectoryCatalogを使用しており、プラグインも難読化する予定です。エクステンションのいくつかはメインアセンブリ内で実行されますが、これも難読化されます。難読化の際のMEFやUnityの問題はありますか?

私の質問は、これがMEF(難読化)の問題になるかどうかであり、もしそうならユニティも同じように苦しんでいますか?前もって感謝します。

答えて

1

bbfuscationはアセンブリのバイナリ互換性を変更しないため、問題は発生していません。

しかし、私は難読化されたアセンブリとMEFで実際に作業をしていないので、間違っている可能性があります。

+0

ここに根底にあるのは、コードに影響するかどうかを確認するためには、テストする必要があると思います。 – Nate

+1

実際にはもう少しq/aを読んだ後、私は難読化をやめようと思っています。私は実際に私のIPをカジュアルオブザーバーから保護することに本当に心配しておらず、誰かが本当に動機付けられているのであれば、難読化はとにかくそれらを止めません。本当に保護を得る唯一の方法は暗号化することです。私はそのパフォーマンスヒットを望んでいません。 – SRM

+0

私は同意します。ほとんどの場合、その価値はそれほどありません。 – Nate

4

UnityとObfuscationの問題が発生しました。その場合、単一性によって解決される依存関係は、プロパティの[ServiceDependency]属性でタグ付けされました。 ILのプロパティはGetメソッドとSetメソッド以外のものです。いくつかのメタデータによって結ばれています。それは何を他のものにしているのでしょうか。 難読化が発生し、プロパティをネイティブのGetメソッドとSetメソッドで置き換えました。あなたは問題を見ることができますか?プロパティはなくなりました(メソッドに置き換えられました)。 Noプロパティは、プロパティの[ServiceDependency]属性がないことを意味します。Dependency Injectionがないとは、null参照はクラッシュを意味します。

解決策は[ServiceDependency] AND [難読化(Feature = "名前変更"、Exclude = true)](.NET Frameworkの一部)でプロパティにタグを付けることでした。

重要な点:難読化はDotfuscator Professionalで行われました。

+0

これは私にとって非常に役立つので、私は両方の答えを正しいとマークすることができたらいいと思います。私は自分自身のPMDI(貧乏人の依存症注射)の勃起を止め、それに苦しんでいます。私はUnityを再訪したいと思います。これは大いに役立ちます。ありがとうございました! – SRM

関連する問題