예제 #1
0
        private void InitExtensibility()
        {
            var asmHelper = new AssemblyScanHelper();

            // Добавляем собственную сборку
            asmHelper.AddAssembly(GetType().Assembly);
            // Добавляем Janus-Common
            asmHelper.AddAssembly(typeof(ExtensionInfoProviderBase).Assembly);
            // Добавляем сборки всех расширений
            var rootDir = EnvironmentHelper.GetJanusRootDir();

            foreach (var asmPath in GetExtensionAssemblies(rootDir))
            {
                asmHelper.AddAssembly(Assembly.LoadFrom(asmPath));
                Trace.WriteLine("Use extension assembly '{0}'".FormatStr(asmPath));
            }

            //Ресолвинг сборок расширений
            foreach (var dir in GetExtensionDirs(rootDir).Select(Path.GetFileName))
#pragma warning disable 612,618
            {
                AppDomain.CurrentDomain.AppendPrivatePath(dir);
            }
#pragma warning restore 612,618

            var extensionManager = new ExtensionManager(_serviceManager);
            StrategyFactoryStrategy.RegisterAndScan(
                _serviceManager,
                extensionManager,
                asmHelper.GetTypes());
        }
예제 #2
0
파일: JanusHost.cs 프로젝트: rsdn/janus
		private void InitExtensibility()
		{
			var asmHelper = new AssemblyScanHelper();

			// Добавляем собственную сборку
			asmHelper.AddAssembly(GetType().Assembly);
			// Добавляем Janus-Common
			asmHelper.AddAssembly(typeof(ExtensionInfoProviderBase).Assembly);
			// Добавляем сборки всех расширений
			var rootDir = EnvironmentHelper.GetJanusRootDir();
			foreach (var asmPath in GetExtensionAssemblies(rootDir))
			{
				asmHelper.AddAssembly(Assembly.LoadFrom(asmPath));
				Trace.WriteLine($"Use extension assembly '{asmPath}'");
			}

			//Ресолвинг сборок расширений
			foreach (var dir in GetExtensionDirs(rootDir).Select(Path.GetFileName))
#pragma warning disable 612,618
				AppDomain.CurrentDomain.AppendPrivatePath(dir);
#pragma warning restore 612,618

			var extensionManager = new ExtensionManager(_serviceManager);
			StrategyFactoryStrategy.RegisterAndScan(
				_serviceManager,
				extensionManager,
				asmHelper.GetTypes());
		}