本文整理汇总了C#中Binder.Unbind方法的典型用法代码示例。如果您正苦于以下问题:C# Binder.Unbind方法的具体用法?C# Binder.Unbind怎么用?C# Binder.Unbind使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Binder
的用法示例。
在下文中一共展示了Binder.Unbind方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestDuplicateUnbinding
public void TestDuplicateUnbinding()
{
Binder binder = new Binder();
var equivalent = new EventEquivalent();
List<Handler> handlerChain = new List<Handler>();
binder.Bind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
binder.Bind(new SampleEvent1 { Foo = 2 }, new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1));
binder.Unbind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
binder.Unbind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(new SampleEvent1 { Foo = 1 }, equivalent, handlerChain));
Assert.AreEqual(1, binder.BuildHandlerChain(new SampleEvent1 { Foo = 2 }, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[0]);
// with EventSink
var sink = new SampleEventSink();
sink.Bind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
sink.Unbind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
sink.Bind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(new SampleEvent1 { Foo = 1 }, equivalent, handlerChain));
Assert.AreEqual(1, binder.BuildHandlerChain(new SampleEvent1 { Foo = 2 }, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[0]);
}
示例2: TestBinding
public void TestBinding()
{
Binder binder = new Binder();
var equivalent = new EventEquivalent();
binder.Bind(new SampleEvent1(), new MethodHandler<SampleEvent1>(OnSampleEvent1));
var e1 = new SampleEvent1();
var e2 = new SampleEvent1 { Foo = 1 };
var e3 = new SampleEvent1 { Foo = 1, Bar = "bar" };
List<Handler> handlerChain = new List<Handler>();
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e1, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e2, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e3, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
binder.Unbind(new SampleEvent1(), new MethodHandler<SampleEvent1>(OnSampleEvent1));
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(e1, equivalent, handlerChain));
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(e2, equivalent, handlerChain));
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(e3, equivalent, handlerChain));
}
示例3: TestAfterRemoveBindingEvent
public void TestAfterRemoveBindingEvent()
{
var eventCalled = false;
IBinder binder = new Binder();
binder.afterRemoveBinding += delegate(IBinder source, Type type, IList<BindingInfo> bindings) {
Assert.AreEqual(binder, source);
Assert.AreEqual(typeof(IMockInterface), type);
Assert.AreEqual(1, bindings.Count);
Assert.AreEqual(typeof(MockIClass), bindings[0].value);
Assert.AreEqual(0, binder.GetBindings().Count);
eventCalled = true;
};
binder.Bind<IMockInterface>().To<MockIClass>();
binder.Unbind<IMockInterface>();
Assert.IsTrue(eventCalled);
}
示例4: TestDuplicateBinding
public void TestDuplicateBinding()
{
Binder binder = new Binder();
List<Handler> handlerChain = new List<Handler>();
binder.Bind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
binder.Bind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
binder.Unbind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSampleEvent1));
Assert.AreEqual(0, binder.BuildHandlerChain(new SampleEvent1 { Foo = 1 }, handlerChain));
// with EventSink
var sink = new SampleEventSink();
sink.Bind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
sink.Bind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
sink.Unbind(new SampleEvent1 { Foo = 1 }, sink.OnSampleEvent1);
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(new SampleEvent1 { Foo = 1 }, handlerChain));
}
示例5: TestHandlerChainBuilding
public void TestHandlerChainBuilding()
{
Binder binder = new Binder();
var equivalent = new EventEquivalent();
binder.Bind(new SampleEvent1(), new MethodHandler<SampleEvent1>(OnSampleEvent1));
binder.Bind(new SampleEvent1 { Foo = 1 }, new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1));
binder.Bind(new Event(), new MethodHandler<Event>(OnEvent));
var e1 = new SampleEvent1();
var e2 = new SampleEvent1 { Foo = 1 };
var e3 = new SampleEvent1 { Foo = 1, Bar = "bar" };
var e4 = new SampleEvent1 { Foo = 2 };
var e5 = new SampleEvent2 { Foo = 1, Bar = "bar" };
var e6 = new SampleEvent2 { Foo = 2, Bar = "bar" };
List<Handler> handlerChain = new List<Handler>();
handlerChain.Clear();
Assert.AreEqual(2, binder.BuildHandlerChain(e1, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[1]);
handlerChain.Clear();
Assert.AreEqual(3, binder.BuildHandlerChain(e2, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[1]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[2]);
handlerChain.Clear();
Assert.AreEqual(3, binder.BuildHandlerChain(e3, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[1]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[2]);
handlerChain.Clear();
Assert.AreEqual(2, binder.BuildHandlerChain(e4, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[1]);
handlerChain.Clear();
Assert.AreEqual(3, binder.BuildHandlerChain(e5, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[1]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[2]);
handlerChain.Clear();
Assert.AreEqual(2, binder.BuildHandlerChain(e6, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSampleEvent1), handlerChain[0]);
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[1]);
binder.Unbind(new SampleEvent1(), new MethodHandler<SampleEvent1>(OnSampleEvent1));
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e1, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<Event>(OnEvent), handlerChain[0]);
binder.Unbind(new Event(), new MethodHandler<Event>(OnEvent));
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e2, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[0]);
handlerChain.Clear();
Assert.AreEqual(1, binder.BuildHandlerChain(e3, equivalent, handlerChain));
Assert.AreEqual(new MethodHandler<SampleEvent1>(OnSpecificSampleEvent1), handlerChain[0]);
handlerChain.Clear();
Assert.AreEqual(0, binder.BuildHandlerChain(e4, equivalent, handlerChain));
}
示例6: TestUnbindByType
public void TestUnbindByType()
{
var binder = new Binder();
binder.Bind<MockClassToDepend>().ToSelf();
binder.Bind<IMockInterface>().To<MockIClassWithAttributes>();
binder.Unbind(typeof(IMockInterface));
var bindings = binder.GetBindings();
Assert.AreEqual(1, bindings.Count);
Assert.AreEqual(typeof(MockClassToDepend), bindings[0].type);
}
示例7: TestUnbindByIdentifier
public void TestUnbindByIdentifier()
{
var binder = new Binder();
binder.Bind<MockClassToDepend>().ToSelf();
binder.Bind<IMockInterface>().To<MockIClassWithAttributes>().As("Mock1");
binder.Bind<IMockInterface>().To<MockIClassWithAttributes>().As("Mock2");
binder.Unbind("Mock1");
var bindings = binder.GetBindings();
Assert.AreEqual(2, bindings.Count);
Assert.AreEqual(typeof(MockClassToDepend), bindings[0].type);
Assert.AreEqual(typeof(IMockInterface), bindings[1].type);
Assert.AreEqual("Mock2", bindings[1].identifier);
}