インターフェイスからクラスへのバインディングを登録する代わりに、クラスを登録し、IOC コンテナーにそのクラスに関連付けられたインターフェイスを暗黙的に登録させたいと考えています。特にUnityの答えが必要ですが、IOCコンテナでこれができるかどうか知りたいです。
私が求めているものを明確にするために、次のことに注意してください。
public interface IFred
{
int Go();
}
public class Fred : IFred
{
public int Go()
{
return 1;
}
}
class Program
{
static void Main(string[] args)
{
UnityContainer container = new UnityContainer();
container.RegisterType<Fred>(); //contra-variant registration?
IFred foo = container.Resolve<IFred>(); //variant resolution?
}
}
上記の例では、IFred マッピングを明示的に登録していなくても、"Fred" インスタンスが返されるようにします。