2016-12-29 57 views
0

私はASP.NET C#で依存関係注入のためにUnityを使用しています。すべての素晴らしいUnityを使用して[Dependency]属性でインスタンスを挿入する方法は?

container.RegisterType<ISomething, Something>(); 

:依存関係のように構成されている

class MyClass 
{ 
    private readonly ISomething _something; 

    public MyClass(ISomething something) 
    { 
     _something = something; 
    } 

    public MyMethod() 
    { 
     // _something is instantiated as expected 
    } 
} 

通常、私は次のように、コンストラクタで依存関係を注入します。

しかし、今私はコンストラクタを使わずに注射をする必要があります。だから私は、この目的のために依存関係属性[Dependency]を使うことができると読んでいます。

class MyClass 
{ 
    [Dependency] 
    private ISomething _something { get; set; } 

    public MyMethod() 
    { 
     // _something appears to be null 
    } 
} 

しかし何らかの理由で_somethingがnullと思われます。

私には何が欠けていますか?

SOLUTION:私のために働いた

How to resolve dependency in static class with Unity?

注入されたインスタンスを生成するファクトリを作成する方法を示しており、ここではオーバー受け入れ答えを参照してください!

+0

"しかし、今はコンストラクタを使わずに注入を行う必要があります。"なぜこれが必要ですか? – Steven

答えて

0

プライベートプロパティに注入しようとしています。これは不可能です。

個人的には、自分自身を特定のDependency Injectionフレームワークにロックしないように、コンストラクタインジェクションに固執することをお勧めします。

+0

問題を解決策で更新しました。それは本当に可能です - それは私のためにうまくいきました。 – brinch

関連する問題