Пример #1
0
        /// <summary>
        ///     注册一个扩展。
        /// </summary>
        /// <param name="kernelBuilder">内核建设者。</param>
        /// <param name="assembly">扩展程序集。</param>
        /// <param name="isMinimumShellDescriptor">是否迷你外壳描述符。</param>
        /// <returns>内核建设者。</returns>
        public static IKernelBuilder RegisterExtension(this IKernelBuilder kernelBuilder, Assembly assembly, bool isMinimumShellDescriptor)
        {
            kernelBuilder.OnStarting(
                builder =>
            {
                builder.RegisterType <ExtensionFolders>().As <IExtensionFolders>().SingleInstance();
                builder.RegisterType <ExtensionMinimumShellDescriptorProvider>().As <IMinimumShellDescriptorProvider>().SingleInstance();
            },
                "RegisterExtensions");

            var description = new ExtensionFolders.SimpleExtensionDescription
            {
                Id       = assembly.GetName().Name,
                Type     = "Module",
                Location = "~/"
            };

            Descriptions.Add(description);

            if (isMinimumShellDescriptor)
            {
                ExtensionMinimumShellDescriptorProvider.Features.Add(description.Id);
            }

            return(kernelBuilder);
        }
Пример #2
0
        /// <summary>
        ///     注册一个扩展。
        /// </summary>
        /// <param name="kernelBuilder">内核建设者。</param>
        /// <param name="assembly">扩展程序集。</param>
        /// <param name="isMinimumShellDescriptor">是否迷你外壳描述符。</param>
        /// <returns>内核建设者。</returns>
        public static IKernelBuilder RegisterExtension(this IKernelBuilder kernelBuilder, Assembly assembly, bool isMinimumShellDescriptor)
        {
            kernelBuilder.OnStarting(
                builder =>
                {
                    builder.RegisterType<ExtensionFolders>().As<IExtensionFolders>().SingleInstance();
                    builder.RegisterType<ExtensionMinimumShellDescriptorProvider>().As<IMinimumShellDescriptorProvider>().SingleInstance();
                },
                "RegisterExtensions");

            var description = new ExtensionFolders.SimpleExtensionDescription
            {
                Id = assembly.GetName().Name,
                Type = "Module",
                Location = "~/"
            };
            Descriptions.Add(description);

            if (isMinimumShellDescriptor)
            {
                ExtensionMinimumShellDescriptorProvider.Features.Add(description.Id);
            }

            return kernelBuilder;
        }