📄 extensionfamilybase.cs
字号:
/*
* ExtensionFamilyBase.cs @Microsoft Visual Studio 2005 <.NET Framework 2.0>
* AfritXia
* 2007-12-04
*
* Copyright(c) http://www.AfritXia.NET/
*
*/
using System;
using System.Collections.Generic;
using NET.AfritXia.MyHome.Extension.Definition;
namespace NET.AfritXia.MyHome.Extension.Families
{
/// <summary>
/// 扩展家族基础类
/// </summary>
/// <typeparam name="T"></typeparam>
internal abstract class ExtensionFamilyBase<T> : IExtension where T : IExtension
{
// 扩展所有者
private string m_actor = null;
// 内置的功能扩展集合
private List<T> m_innerExtensionList = new List<T>();
#region 类构造器
/// <summary>
/// 类默认构造器
/// </summary>
internal ExtensionFamilyBase()
{
}
#endregion
#region IExtension 成员
public string Actor
{
set
{
this.m_actor = value;
foreach (IExtension e in this.InnerExtensionList)
e.Actor = value;
}
get
{
return this.m_actor;
}
}
public void EnlistTransactionObject(object tranxObj)
{
foreach (IExtension e in this.InnerExtensionList)
e.EnlistTransactionObject(tranxObj);
}
#endregion
/// <summary>
/// 获取内置的扩展集合
/// </summary>
protected IList<T> InnerExtensionList
{
get
{
return this.m_innerExtensionList;
}
}
/// <summary>
/// 添加一个扩展到家族
/// </summary>
/// <param name="extension">新功能扩展</param>
internal virtual void Add(T extension)
{
this.InnerExtensionList.Add(extension);
}
/// <summary>
/// 从家族中移除一个扩展
/// </summary>
/// <param name="extension">被移除的扩展对象</param>
/// <returns></returns>
internal virtual bool Remove(T extension)
{
return this.InnerExtensionList.Remove(extension);
}
/// <summary>
/// 从家族中移除指定索引处的扩展
/// </summary>
/// <param name="index">索引位置</param>
internal virtual void RemoveAt(int index)
{
this.InnerExtensionList.RemoveAt(index);
}
/// <summary>
/// 清除所有扩展
/// </summary>
internal virtual void Clear()
{
this.InnerExtensionList.Clear();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -