2016-06-13 50 views
1

在我的应用程序中,我处理大量ViewModel,它们通过几个接口在LightInject容器中注册。其中一些接口来自其他用于UnitTesting的目的。LightInject - 派生的接口导致多个实例

当使用相同的接口解析多个视图模型,这是上面的接口时,我得到的视图模式比预期更多。

我为这种行为做了一个简化的例子。是否有可能以某种方式防止这种行为?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
public interface IBar 
{ 
} 

public interface IFoo : IBar 
{ 
} 

public class Cat : IFoo 
{ 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var container = new LightInject.ServiceContainer(); 

     container.Register<IBar, Cat>(); 
     container.Register<IFoo, Cat>(); 

     var m = container.GetAllInstances(typeof(IBar)); 

     // m will contain 2 Instances of Cat. Is it possible it will resolve only 1 Instance? 
    } 
} 

}

回答

1

试试这个 var container = new ServiceContainer(new ContainerOptions() {EnableVariance = false});

+0

这似乎解决它:) – KroaX

相关问题