コード例 #1
0
        public static void SetDefaultTemplate(this IPersistentTemplatedTypeInfo persistentMemberInfo, TemplateType templateType)
        {
            var objectType = XafTypesInfo.Instance.FindBussinessObjectType <ICodeTemplateInfo>();

            persistentMemberInfo.CodeTemplateInfo = (ICodeTemplateInfo)objectType.CreateInstance(persistentMemberInfo.Session);
            persistentMemberInfo.CodeTemplateInfo.CreateDefaultTemplate(templateType, GetProvider(persistentMemberInfo));
            persistentMemberInfo.CodeTemplateInfo.CloneProperties();
        }
コード例 #2
0
        public static void SetDefaultTemplate(this IPersistentTemplatedTypeInfo persistentMemberInfo, TemplateType templateType)
        {
            var objectType = WCTypesInfo.Instance.FindBussinessObjectType <ICodeTemplateInfo>();

            persistentMemberInfo.CodeTemplateInfo = (ICodeTemplateInfo)objectType.CreateInstance(new object[] { persistentMemberInfo.Session });

            var defaultTemplate = CodeTemplateBuilder.CreateDefaultTemplate(templateType, persistentMemberInfo.Session,
                                                                            WCTypesInfo.Instance.FindBussinessObjectType <ICodeTemplate>(),
                                                                            GetProvider(persistentMemberInfo));

            persistentMemberInfo.CodeTemplateInfo.CodeTemplate = defaultTemplate;
            persistentMemberInfo.CodeTemplateInfo.CloneProperties();
        }
コード例 #3
0
        public static void SetDefaultTemplate(this IPersistentTemplatedTypeInfo persistentMemberInfo, TemplateType templateType)
        {
            var objectSpace = XPObjectSpace.FindObjectSpaceByObject(persistentMemberInfo);

            persistentMemberInfo.CodeTemplateInfo = objectSpace.CreateWCObject <ICodeTemplateInfo>();

            ICodeTemplate defaultTemplate = CodeTemplateBuilder.CreateDefaultTemplate(templateType, persistentMemberInfo.Session,
                                                                                      WCTypesInfo.Instance.FindBussinessObjectType <ICodeTemplate>(),
                                                                                      GetProvider(persistentMemberInfo));

            persistentMemberInfo.CodeTemplateInfo.CodeTemplate = defaultTemplate;
            persistentMemberInfo.CodeTemplateInfo.CloneProperties();
        }
コード例 #4
0
ファイル: TypeInfoExtensions.cs プロジェクト: xwagner2/eXpand
 public static void Init(this IPersistentTemplatedTypeInfo persistentTemplatedTypeInfo, Type codeTemplateType)
 {
     persistentTemplatedTypeInfo.CodeTemplateInfo = XPObjectSpace.FindObjectSpaceByObject(persistentTemplatedTypeInfo).CreateWCObject <ICodeTemplateInfo>();
     if (persistentTemplatedTypeInfo is IPersistentMemberInfo)
     {
         var persistentMemberInfo = ((IPersistentMemberInfo)persistentTemplatedTypeInfo);
         persistentMemberInfo.Init(codeTemplateType, persistentMemberInfo.Owner.PersistentAssemblyInfo.CodeDomProvider);
     }
     else if (persistentTemplatedTypeInfo is IPersistentClassInfo)
     {
         var persistentClassInfo = ((IPersistentClassInfo)persistentTemplatedTypeInfo);
         persistentClassInfo.Init(codeTemplateType, persistentClassInfo.PersistentAssemblyInfo.CodeDomProvider);
     }
 }
コード例 #5
0
ファイル: WCExtensions.cs プロジェクト: xyyhqq/eXpand
        public static void Init(this IPersistentTemplatedTypeInfo persistentTemplatedTypeInfo, Type codeTemplateType)
        {
            var objectType = XafTypesInfo.Instance.FindBussinessObjectType <ICodeTemplateInfo>();

            persistentTemplatedTypeInfo.CodeTemplateInfo = (ICodeTemplateInfo)Activator.CreateInstance(objectType, persistentTemplatedTypeInfo.Session);
            if (persistentTemplatedTypeInfo is IPersistentMemberInfo templatedTypeInfo)
            {
                var persistentMemberInfo = templatedTypeInfo;
                persistentMemberInfo.Init(codeTemplateType, persistentMemberInfo.Owner.PersistentAssemblyInfo.CodeDomProvider);
            }
            else if (persistentTemplatedTypeInfo is IPersistentClassInfo classInfo)
            {
                classInfo.Init(codeTemplateType, classInfo.PersistentAssemblyInfo.CodeDomProvider);
            }
        }
コード例 #6
0
 static CodeDomProvider GetProvider(IPersistentTemplatedTypeInfo persistentMemberInfo)
 {
     return((persistentMemberInfo as IPersistentClassInfo)?.PersistentAssemblyInfo.CodeDomProvider ?? ((IPersistentMemberInfo)persistentMemberInfo).Owner.PersistentAssemblyInfo.CodeDomProvider);
 }
コード例 #7
0
 static CodeDomProvider GetProvider(IPersistentTemplatedTypeInfo persistentMemberInfo) {
     return persistentMemberInfo is IPersistentClassInfo
                ? ((IPersistentClassInfo)persistentMemberInfo).PersistentAssemblyInfo.CodeDomProvider
                : ((IPersistentMemberInfo)persistentMemberInfo).Owner.PersistentAssemblyInfo.CodeDomProvider;
 }