/// <summary>
        /// 类型<paramref name="domainObjectType"/>是否为另外一个领域类型的派生类
        /// </summary>
        /// <param name="domainObjectType"></param>
        /// <returns></returns>
        public static bool IsDerived(Type domainObjectType)
        {
            if (domainObjectType == null)
            {
                return(false);
            }
            if (!DomainObject.IsDomainObject(domainObjectType))
            {
                return(false);
            }

            var baseType = domainObjectType.BaseType;

            //基类以及以上的类,定义了ObjectRepositoryAttribute,我们就认为是派生的
            //因为框架提供的基类没有标记ObjectRepositoryAttribute
            return(baseType != null &&
                   !DomainObject.IsFrameworkDomainObjectType(baseType));
        }
 internal static void Initialize()
 {
     //主动触发静态构造
     foreach (var info in _types)
     {
         var derivedType = info.Value;
         var inheriteds  = derivedType.GetInheriteds();
         foreach (var baseType in inheriteds)
         {
             if (!DomainObject.IsDomainObject(baseType))
             {
                 continue;
             }
             //我们在触发扩展类型的静态构造之前,先触发一次原始类型的静态构造,这样避免静态扩展的成员在原始成员之前被注入
             DomainObject.StaticConstructor(baseType);
         }
         //触发派生类型的静态构造函数
         DomainObject.StaticConstructor(derivedType);
     }
 }