myextensionfactory.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 89 行

CS
89
字号
/* 
 * MyExtensionFactory.cs @Microsoft Visual Studio 2005 <.NET Framework 2.0>
 * AfritXia
 * 2007-12-10
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections.Generic;

using NET.AfritXia.MyHome.Extension;
using NET.AfritXia.MyHome.Extension.Definition;
using NET.AfritXia.MyHome.SystemConf;

namespace NET.AfritXia.MyHome.InternalService
{
	/// <summary>
	/// 自定义扩展工厂
	/// </summary>
	public sealed class MyExtensionFactory
	{
		// 扩展工厂
		private static IExtensionFactory g_extensionFactory = null;

		#region 类构造器
		/// <summary>
		/// 类静态构造器
		/// </summary>
		static MyExtensionFactory()
		{
			// 获取扩展工厂类集合
			List<ExtensionFactoryClass> efcList = new List<ExtensionFactoryClass>(SystemConfManager.Context.ExtensionConf.ExtensionFactoryClassList);
			// 创建扩展工厂构建器
			ExtensionFactoryBuilder builder = new ExtensionFactoryBuilder();

			foreach (ExtensionFactoryClass efc in efcList)
				builder.AddExtensionFactoryType(efc.Priority, efc.FactoryType);

			// 建造扩展工厂
			g_extensionFactory = builder.Build();
		}

		/// <summary>
		/// 类默认构造器
		/// </summary>
		private MyExtensionFactory()
		{
		}
		#endregion

		/// <summary>
		/// 创建管理员扩展
		/// </summary>
		/// <returns></returns>
		public static IHomeAdminExtension CreateHomeAdminExtension()
		{
			return g_extensionFactory.CreateHomeAdminExtension();
		}

		/// <summary>
		/// 创建文章扩展
		/// </summary>
		/// <returns></returns>
		public static IArticleExtension CreateArticleExtension()
		{
			return g_extensionFactory.CreateArticleExtension();
		}

		/// <summary>
		/// 创建评论扩展
		/// </summary>
		/// <returns></returns>
		public static ICommentExtension CreateCommentExtension()
		{
			return g_extensionFactory.CreateCommentExtension();
		}

		/// <summary>
		/// 创建留言板扩展
		/// </summary>
		/// <returns></returns>
		public static ILWordExtension CreateLWordExtension()
		{
			return g_extensionFactory.CreateLWordExtension();
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?