私は今1年以上、StructureMapを使用しています。そして、私はこのIoC用のラッパーをお持ちですか?
class IoC {
public static T GetInstance<T>()
{
return (T)GetInstance(typeof(T));
}
public static IEnumerable<T> GetAllInstances<T>()
{
return ObjectFactory.GetAllInstances<T>();
}
public static IEnumerable GetAllInstances(Type type)
{
return ObjectFactory.GetAllInstances(type);
}
public static object GetInstance(Type type)
{
return ObjectFactory.GetInstance(type);
}
public static void Inject<T>(T obj)
{
ObjectFactory.Inject(obj);
}
}
のように見えたのIoCと呼ばれるラッパークラスを持っていたすべてのこの時間は、私はラインの下のいくつかの点でIoCコンテナを変更したい場合がありますことを想定ラッパーを追加しました。この時点で、私はこれが悪いと思っています。その理由の1つは、私のコードでObjectFactoryを使用して他の面白いことをすることができないことです。このラッパーを使用する必要があります。もう一つは:私たちのコードは、実際にDependencyInjectionコンテナから独立している必要はありません。
このアプローチを使用する際の賛否両論は何ですか?
[Mark Seemann](http://blog.ploeh.dk/)は、このようなラッパーを「適合コンテナ」と呼びます。彼は最近、[これについてのブログ記事](http://blog.ploeh。dk/2014/05/19/conforming-container /)、彼はこれを明白に反パターンと呼んでいる。 – Steven