Unity Registry with Observer Pattern,怎么样?

时间:2016-06-17 19:09:01

标签: c# dependency-injection inversion-of-control unity-container

我有一个具体的类,它接受一组实现观察者模式的观察者。 我正在构建注入观察者列表。

如何使用Unity注册实现和混凝土?

例如:

public class MyService : IMyService
{
    private IObserver[] _observers;
    public MyService(params IObserver[] observers){
             _observers = observers;
    }

    public void MyMethod(MyObject myObject){

        foreach(var ob in _observers){
               ob.Execute(myObject);
        }
    }
}

public class Ob1 : IObserver{
      public void Execute(MyObject obj){
           //do something
       }
}

public class Ob2 : IObserver{
      public void Execute(MyObject obj){
           //do something
       }
}

public class MyRegistry : UnityRegistry
{
    public MyRegistry(){
        ///What Goes Here??
    }
}

2 个答案:

答案 0 :(得分:1)

我会做这样的事情。

status != HAL_OK

希望它有所帮助!

答案 1 :(得分:0)

你只需要为IObserver的注册命名,Unity就能正确解析观察者数组:

public class MyRegistry : UnityRegistry
{
    public MyRegistry()
    {
        Register<IMyService, MyService>();
        Register<IObserver, Ob1>().WithName("observer1");
        Register<IObserver, Ob2>().WithName("observer2");
    }
}