예제 #1
0
 public ModelApplicationBase GetMasterModel(bool tryToUseCurrentTypesInfo, Action <ITypesInfo> action = null)
 {
     _typesInfo = TypesInfoBuilder.Create()
                  .FromModule(_moduleName)
                  .Build(tryToUseCurrentTypesInfo);
     _xafApplication = ApplicationBuilder.Create().
                       UsingTypesInfo(s => _typesInfo).
                       FromModule(_moduleName).
                       Build();
     return(GetMasterModel(_xafApplication, action));
 }
예제 #2
0
        public ModelApplicationBase GetMasterModel(bool tryToUseCurrentTypesInfo, Action <ITypesInfo> action = null)
        {
            ModelApplicationBase masterModel = null;

            Retry.Do(() => {
                _typesInfo = TypesInfoBuilder.Create()
                             .FromModule(_moduleName)
                             .Build(tryToUseCurrentTypesInfo);
                _xafApplication = ApplicationBuilder.Create().
                                  UsingTypesInfo(s => _typesInfo).
                                  FromModule(_moduleName).
                                  Build();

                masterModel = GetMasterModel(_xafApplication, action);
            }, TimeSpan.FromTicks(1), 2);
            return(masterModel);
        }
예제 #3
0
        public ModelApplicationBase GetMasterModel(bool tryToUseCurrentTypesInfo, Action <ITypesInfo> action = null)
        {
            if (!File.Exists(_moduleName))
            {
                throw new UserFriendlyException(_moduleName + " not found in path");
            }
            ModelApplicationBase masterModel = null;

            Retry.Do(() => {
                _typesInfo = TypesInfoBuilder.Create()
                             .FromModule(_moduleName)
                             .Build(tryToUseCurrentTypesInfo);
                _xafApplication = ApplicationBuilder.Create().
                                  UsingTypesInfo(s => _typesInfo).
                                  FromModule(_moduleName).
                                  Build();

                masterModel = GetMasterModel(_xafApplication, action);
            }, TimeSpan.FromTicks(1), 2);
            return(masterModel);
        }
예제 #4
0
        public static void AddKnownTypes(string modulePath)
        {
            InterfaceBuilder.SkipAssemblyCleanup = true;
            var instance    = XafTypesInfo.Instance;
            var modelLoader = new ModelLoader(modulePath, instance);

            modulePath = Path.GetFullPath(modulePath);
            var typesInfo      = TypesInfoBuilder.Create().FromModule(modulePath).Build(false);
            var xafApplication = ApplicationBuilder.Create()
                                 .UsingTypesInfo(s => typesInfo)
                                 .FromModule(modulePath)
                                 .FromAssembliesPath(Path.GetDirectoryName(modulePath))
                                 .WithOutObjectSpaceProvider()
                                 .Build();

            modelLoader.GetMasterModel(xafApplication);
            AddKnownTypesForAll(typesInfo);
            instance.AssignAsInstance();
            xafApplication.Dispose();
            InterfaceBuilder.SkipAssemblyCleanup = true;
        }