protected override ObjectDefinitionHolder CreateObjectDefinitionHolder(XmlElement element, IConfigurableObjectDefinition definition, string objectName, string[] aliasesArray) { IWebObjectDefinition webDefinition = definition as IWebObjectDefinition; if (webDefinition != null) { if (definition.IsSingleton && element.HasAttribute(ObjectDefinitionConstants.ScopeAttribute)) { webDefinition.Scope = GetScope(element.GetAttribute(ObjectDefinitionConstants.ScopeAttribute)); } // force request and session scoped objects to be lazily initialized... if (webDefinition.Scope == ObjectScope.Request || webDefinition.Scope == ObjectScope.Session) { definition.IsLazyInit = true; } // string typeName = element.GetAttribute(ObjectDefinitionConstants.TypeAttribute); string typeName = definition.ObjectTypeName; if (typeName != null && (typeName.EndsWith(".ascx") || typeName.EndsWith(".master"))) { definition.IsAbstract = true; } } ObjectDefinitionHolder holder = base.CreateObjectDefinitionHolder(element, definition, objectName, aliasesArray); return(holder); }
public static void ThrowsArgumentExceptionOnNonExistingPathImpl() { using (TestWebContext ctx = new TestWebContext("/Test", "testform.aspx")) { WebObjectDefinitionFactory factory = new WebObjectDefinitionFactory(); IWebObjectDefinition definition = (IWebObjectDefinition)factory.CreateObjectDefinition("/Test/DoesNotExist.aspx", "parentdefinition", AppDomain.CurrentDomain); } }
public static void ResolvesToPageRootDefinitionIfEndsWithASPXImpl() { using (TestWebContext ctx = new TestWebContext("/Test", "testform.aspx")) { WebObjectDefinitionFactory factory = new WebObjectDefinitionFactory(); IWebObjectDefinition definition = (IWebObjectDefinition)factory.CreateObjectDefinition("/Test/testform.aspx", null, AppDomain.CurrentDomain); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.IsTrue(definition.IsPage, ".aspx extension must result in a page instance"); Assert.AreEqual(typeof(RootWebObjectDefinition), definition.GetType()); } }