This is the most common type of object definition in ASP.Net web applications
public void CanBeUsedOnNonWebThread() { WebObjectFactory wof; RootWebObjectDefinition rwod; // we need to create WOF within a valid HttpContext environment 'cause we will // make use of 'request' and 'session' scope. using (new VirtualEnvironmentMock("/somedir/some.file", null, null, "/", true)) { wof = new WebObjectFactory("/somedir/", false); } rwod = new RootWebObjectDefinition(typeof(object), new ConstructorArgumentValues(), new MutablePropertyValues()); rwod.Scope = ObjectScope.Application.ToString(); wof.RegisterObjectDefinition("applicationScopedObject", rwod); rwod = new RootWebObjectDefinition(typeof(object), new ConstructorArgumentValues(), new MutablePropertyValues()); rwod.Scope = ObjectScope.Request.ToString(); wof.RegisterObjectDefinition("requestScopedObject", rwod); rwod = new RootWebObjectDefinition(typeof(object), new ConstructorArgumentValues(), new MutablePropertyValues()); rwod.Scope = ObjectScope.Session.ToString(); wof.RegisterObjectDefinition("sessionScopedObject", rwod); object o; o = wof.GetObject("applicationScopedObject"); Assert.IsNotNull(o); AssertGetObjectThrows(typeof(ObjectCreationException), wof, "requestScopedObject"); AssertGetObjectThrows(typeof(ObjectCreationException), wof, "sessionScopedObject"); }
public void UnderstandsObjectScopePrototype() { RootWebObjectDefinition rwod = new RootWebObjectDefinition(typeof(object), new ConstructorArgumentValues(), new MutablePropertyValues()); rwod.IsSingleton = false; Assert.IsFalse(rwod.IsPage); Assert.IsFalse(rwod.IsSingleton); Assert.IsTrue(rwod.IsPrototype); Assert.AreEqual(ObjectScope.Prototype, ((IWebObjectDefinition)rwod).Scope); }