public virtual IHandler Create(ComponentModel model) { IHandler handler = new DefaultHandler(model); handler.Init(kernel); //组件初始化 return(handler); }
public void Usage() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler( new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler2 = new DefaultHandler( new ComponentModel("B", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler3 = new DefaultHandler( new ComponentModel("C", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler4 = new DefaultHandler( new ComponentModel("D", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler5 = new DefaultHandler( new ComponentModel("E", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler6 = new DefaultHandler( new ComponentModel("F", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("protocolhandler"), handler1); tree.Add(new ComponentName("protocolhandler:key=1"), handler2); tree.Add(new ComponentName("protocolhandler:key=2"), handler3); tree.Add(new ComponentName("protocolhandler:key=2,secure=true"), handler4); tree.Add(new ComponentName("modelmanager"), handler5); tree.Add(new ComponentName("viewmanager"), handler6); Assert.AreSame(handler1, tree.GetHandler(new ComponentName("protocolhandler"))); Assert.AreSame(handler2, tree.GetHandler(new ComponentName("protocolhandler:key=1"))); Assert.AreSame(handler3, tree.GetHandler(new ComponentName("protocolhandler:key=2"))); Assert.AreSame(handler4, tree.GetHandler(new ComponentName("protocolhandler:key=2,secure=true"))); Assert.AreSame(handler5, tree.GetHandler(new ComponentName("modelmanager"))); Assert.AreSame(handler6, tree.GetHandler(new ComponentName("viewmanager"))); IHandler[] handlers = tree.GetHandlers(new ComponentName("protocolhandler")); Assert.AreEqual(4, handlers.Length); Assert.AreSame(handler1, handlers[0]); Assert.AreSame(handler2, handlers[1]); Assert.AreSame(handler3, handlers[2]); Assert.AreSame(handler4, handlers[3]); handlers = tree.GetHandlers(new ComponentName("protocolhandler:*")); Assert.AreEqual(4, handlers.Length); Assert.AreSame(handler1, handlers[0]); Assert.AreSame(handler2, handlers[1]); Assert.AreSame(handler3, handlers[2]); Assert.AreSame(handler4, handlers[3]); handlers = tree.GetHandlers(new ComponentName("protocolhandler:secure=true")); Assert.AreEqual(1, handlers.Length); Assert.AreSame(handler4, handlers[0]); handlers = tree.GetHandlers(new ComponentName("protocolhandler:key=2")); Assert.AreEqual(2, handlers.Length); Assert.AreSame(handler3, handlers[0]); Assert.AreSame(handler4, handlers[1]); }
public void ResolveInSameSession() { var context = GetMockContext(); var m = new PerWebSessionLifestyleManager {ContextProvider = () => context}; var kernel = new DefaultKernel(); var model = new ComponentModel(new ComponentName("bla", true), new List<Type> { typeof(object) }, typeof(object), null); var activator = kernel.CreateComponentActivator(model); m.Init(activator, kernel, model); var handler = new DefaultHandler(model); var creationContext = new CreationContext(handler, kernel.ReleasePolicy, typeof (object), null, null, null); //creationContext.EnterResolutionContext(kernel.GetHandler(), false); var instance = m.Resolve(creationContext, kernel.ReleasePolicy); Assert.IsNotNull(instance); var instance2 = m.Resolve(creationContext, kernel.ReleasePolicy); Assert.AreSame(instance, instance2); }
public virtual IHandler Create(ComponentModel model) { IHandler handler; if (model.RequiresGenericArguments) { handler = new DefaultGenericHandler(model); } else { handler = new DefaultHandler(model); } handler.Init(kernel); return handler; }
public void RemoveUnbalancedRoot() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("1000"), handler1); tree.Add(new ComponentName("7500"), handler1); tree.Add(new ComponentName("6000"), handler1); tree.Add(new ComponentName("2000"), handler1); tree.Remove(new ComponentName("1000")); assertRemoved(tree, 3, new ComponentName("1000"), new ComponentName("6000")); }
public void ComponentNameEmptyProperties() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); DefaultHandler handler2 = new DefaultHandler(new ComponentModel("B", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("protocolhandler:key=1"), handler2); tree.Add(new ComponentName("protocolhandler"), handler1); Assert.AreEqual(handler1, tree.GetHandler(new ComponentName("protocolhandler"))); }
public void RemoveBranchNode() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("1000"), handler1); tree.Add(new ComponentName("0500"), handler1); tree.Add(new ComponentName("0700"), handler1); tree.Add(new ComponentName("0800"), handler1); tree.Add(new ComponentName("0400"), handler1); tree.Remove(new ComponentName("0500")); assertRemoved(tree, 4, new ComponentName("0500"), new ComponentName("0800")); }
public void RemoveNodeWithSiblings() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("1000"), handler1); tree.Add(new ComponentName("0500"), handler1); tree.Add(new ComponentName("0500:P=1"), handler1); tree.Add(new ComponentName("0500:p=2"), handler1); tree.Add(new ComponentName("0400"), handler1); tree.Remove(new ComponentName("0500")); Assert.AreEqual(4, tree.Count); Assert.AreEqual(4, tree.Handlers.Length); Assert.AreEqual(2, tree.GetHandlers(new ComponentName("0500")).Length); Assert.IsNotNull(tree.GetHandler(new ComponentName("0500:p=2"))); }
public void RemoveSibling() { BinaryTreeComponentName tree = new BinaryTreeComponentName(); DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler))); tree.Add(new ComponentName("1000"), handler1); tree.Add(new ComponentName("0500"), handler1); tree.Add(new ComponentName("0500:P=1"), handler1); tree.Add(new ComponentName("0500:p=2"), handler1); tree.Remove(new ComponentName("0500:p=2")); assertRemoved(tree, 3, new ComponentName("0500:P=2"), new ComponentName("0500:P=1")); }
public HandlerDebuggerProxy(DefaultHandler handler) { this.handler = handler; }
public void NoContextThrows() { var m = new PerWebSessionLifestyleManager {ContextProvider = () => null}; var componentModel = new ComponentModel(new ComponentName("bla", true), new List<Type> { typeof(object) }, typeof(object), null); var handler = new DefaultHandler(componentModel); m.Resolve(new CreationContext(handler, new NoTrackingReleasePolicy(), typeof(object), null, null, null), new NoTrackingReleasePolicy()); }