コード例 #1
0
        /// <summary>
        /// 查找远程根对象
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static dynamic FindRemoteRoot <T>(object id)
            where T : AggregateRootDefine
        {
            var define = TypeDefine.GetDefine <T>();

            return(RemotePortal.GetObject(define, id));
        }
コード例 #2
0
        /// <summary>
        /// 注册类型为动态结构的领域属性
        /// </summary>
        /// <typeparam name="TD"></typeparam>
        /// <typeparam name="OT"></typeparam>
        /// <param name="name"></param>
        /// <returns></returns>
        public static DomainProperty RegisterDynamic <TD, OT>(string name)
            where TD : TypeDefine
        {
            var ownerType = typeof(OT);
            var define    = TypeDefine.GetDefine <TD>();

            var propertyType = define.MetadataType;
            var result       = Register(name, propertyType, ownerType, (o, p) => { return(define.EmptyInstance); }, PropertyChangedMode.Definite, define.MetadataType);

            define.SetBelongProperty(result);
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// 动态类型的集合
        /// </summary>
        /// <typeparam name="TD"></typeparam>
        /// <typeparam name="OT"></typeparam>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        public static DomainProperty RegisterDynamicCollection <TD, OT>(string propertyName)
            where TD : TypeDefine
            where OT : DomainObject
        {
            var define      = TypeDefine.GetDefine <TD>();
            var elementType = define.MetadataType; //动态类型

            return(Register(propertyName, typeof(DomainCollection <dynamic>), typeof(OT), (owner, property) =>
            {
                var collection = new DomainCollection <dynamic>(property);
                collection.Parent = owner;
                return collection;
            }, PropertyChangedMode.Definite, elementType));
        }