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);
        }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
 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());
     }
 }