Unityによって解決されるILogging依存関係を持つQCServiceLogクラスを持つ外部プロジェクトがあります。 しかし、あなたは、次の例に見ることができるようQCServiceLogはシングルトンクラスです:Dependency Injectionを使用したシングルトンクラスC#
private readonly ILogging _logging = null;
private static QCServiceLog _instance = null;
public static QCServiceLog Instance
{
get
{
return _instance;
}
}
public QCServiceLog(ILogging logging)
{
_logging = logging;
if (_instance == null)
{
_instance = this;
}
}
我々はそれを使用しようとしている、と私たちの溶液中で、私たちは次のように登録をした:
uc.RegisterType<ILogging, QCFileManager>(new ContainerControlledLifetimeManager());
しかしQCServiceLog以来コードがコンストラクタを決して経由しないと信じているシングルトンです。その後、_instanceはインスタンス化されません。私たちは、このやってそれを使用している :
QCServiceLog.Instance.Log(ex);
はシングルトンが正しく実装ということですか? QCServiceLogの新しいを実行することは決してありません。
あなたはどう思いますか?外部プロジェクトを変更せずにできることはありますか? あなたが想像できる例外は:
オブジェクト参照がオブジェクトのインスタンスに設定されていません。
本当にありがとうございます。