2016-08-09 15 views
0

私の解決策に3つのプロジェクトがあります。 ポータブルライブラリ(ios、アンドロイド、winphones用)、ライブラリプロジェクト(Windows Phone用)、Windows Phoneテストプロジェクト。私の図書館プロジェクトはポータブルライブラリプロジェクトへの参照を取得しました。私のWindows Phoneテストプロジェクトはポータブルおよびwinphoneライブラリプロジェクトへの参照を取得しました。私のポータブルライブラリプロジェクトでは、私はライブラリwinphoneプロジェクトで実装するいくつかのサービスインターフェイスを持っています。私のポータブルプロジェクトでは、私はWindowsの電話ライブラリに実装し、Windowsの電話テストプロジェクトでこのクラスを使用するサービスを持つフィールドを持ついくつかのクラスを持っています。これを行うには、Autofacライブラリを使用してWindowsの電話ライブラリにタイプを登録してください(これを行うには静的なctorでクラスを作成しました)。そして、私のWindowsライブラリに登録するポータブルライブラリクラスのサービスを解決しようとします。 nullの例外と私はそれを修正する方法を知らない、それは私が実際にやろうとしていることをすることは可能ですか?オートファックヌルサービス解決例外

移植後のライブラリプロジェクトからの私のクラス、呼び出し後の解決メソッド解決方法は例外です。

public IDeviceInformation DeviceInformation { get; } 

    public Logger() 
    { 
     DeviceInformation = AutofacContainer.Instance.Resolve<IDeviceInformation>(); 
    } 

ライブラリプロジェクトからクラス

public class AutoFacRegister 
{ 

    static AutoFacRegister() 
    { 
     var builder = new ContainerBuilder(); 
     builder.RegisterType<WindowsDeviceInformation>() 
      .As<IDeviceInformation>(); 
     AutofacContainer.Instance = builder.Build(); 
    } 
} 

答えて

0

私はあなたのコンテナを作成するために、staticコンストラクタを使用しないことをお勧めします。私は、AutoFacRegisterクラスがどこにも使われていないので、コンストラクタが呼び出されないと思うので、AutofacContainer.Instanceは常にnullになります。

あなたの目標を達成するためにmodulesを使用することをお勧めします。

関連する問題