/// <summary> /// 初始化环境参数 /// </summary> /// <param name="dsConfig"></param> /// <param name="assemblyFullName"></param> private void InitializationDsEnvironment(IDsConfigurationSection dsConfig, string assemblyFullName) { //#if DEBUG // Debugger.Launch(); //#endif Console.WriteLine("InitializationDsEnvironment:{0},{1}".FormatString(dsConfig.ToString(), assemblyFullName)); try { //var server; IDsEnvironment de = ParentContaioner.GetObject <IDsEnvironment>(); IList <ModuleConfigurationElement> server = (from ModuleConfigurationElement me in dsConfig.Modules where me.ModuleType.EndsWith(assemblyFullName) select me).ToList <ModuleConfigurationElement>(); Console.WriteLine("Modules:{0},server count:{0}".FormatString(dsConfig.Modules.Count, server.Count)); ModuleConfigurationElement mce = server.FirstOrDefault(); this.AddinInfo = new AddinInfo() { AddinAssemblyName = assemblyFullName, AddinNameSpace = mce.AssemblyFile.Substring(mce.AssemblyFile.LastIndexOf('/') + 1).Replace(".dll", ""), AddinName = mce.ModuleName, ConfigurationFilePath = ConfigurationFileHelper.GetAddinConfigurationFilePath(mce.AssemblyFile), AddinConfigurationEle = mce, AddinPath = PathHelper.GetFullPath(mce.AssemblyFile) }; if (de.AddinInfos.ContainsKey(AddinInfo.AddinName)) { AddinInfo addin = de.AddinInfos[AddinInfo.AddinName]; addin.ConfigurationFilePath = this.AddinInfo.ConfigurationFilePath; addin.AddinConfigurationEle = this.AddinInfo.AddinConfigurationEle; addin.AddinPath = this.AddinInfo.AddinPath; //throw new Exception("DsEnvironment中注册AddinName失败,原因是AddinName作为键值重复!"); } else { de.AddinInfos.Add(mce.ModuleName, AddinInfo); } }catch (Exception ex) { Console.WriteLine("InitializationDsEnvironment异常:{0}".FormatString(ex.StackTrace.ToString())); throw new Exception("InitializationDsEnvironment异常。", ex); } }
/// <summary> /// 通过指定类型注册Region /// </summary> /// <param name="formObjectId"></param> /// <param name="registerType"></param> /// <param name="registerSingleton"></param> public void RegisterRegionFormType(string formObjectId, Type registerType, bool registerSingleton, bool lazyInit = false) { ParentContaioner.RegisterTypeIfMissing(formObjectId, registerType, registerSingleton, AutoWiringMode.Constructor, lazyInit); }