Beispiel #1
0
        /// <summary>
        /// 根据对象类型得到对象使用的存储对象,如果找不到返回null
        /// </summary>
        /// <param name="objectType"></param>
        /// <returns></returns>
        internal static IRepository CreateWithNoCheckUp(Type objectType)
        {
            var objectTip = ObjectRepositoryAttribute.GetTip(objectType, false);

            if (objectTip == null)
            {
                return(null);
            }
            return(RepositoryFactory.Create(objectTip.RepositoryInterfaceType));
        }
Beispiel #2
0
        /// <summary>
        /// 得到对象类型对应的仓储上定义的方法
        /// </summary>
        /// <param name="objectType"></param>
        /// <param name="methodName"></param>
        /// <returns></returns>
        internal static MethodInfo GetMethodFromRepository(Type objectType, string methodName)
        {
            if (string.IsNullOrEmpty(methodName))
            {
                return(null);
            }
            var objectTip      = ObjectRepositoryAttribute.GetTip(objectType, true);
            var repositoryType = RepositoryFactory.GetRepositoryType(objectTip.RepositoryInterfaceType);
            var method         = repositoryType.ResolveMethod(methodName);

            if (method == null)
            {
                throw new DomainDrivenException(string.Format(Strings.NoDefineMethodFromRepository, repositoryType.FullName, methodName));
            }
            return(method);
        }
        private void InitObject(ConstructorInfo constructor)
        {
            var objectType = constructor.DeclaringType;

            this.ObjectTip = ObjectRepositoryAttribute.GetTip(objectType, false); //对于值对象等成员对象可以不标记仓储特性,仓储为聚合根的仓储类型
        }
Beispiel #4
0
        private void InitObject(ConstructorInfo constructor)
        {
            var objectType = constructor.DeclaringType;

            this.ObjectTip = ObjectRepositoryAttribute.GetTip(objectType, true);
        }
Beispiel #5
0
        /// <summary>
        /// 根据对象类型得到对象使用的仓储对象
        /// </summary>
        /// <param name="objectType"></param>
        /// <returns></returns>
        public static IRepository Create(Type objectType)
        {
            var objectTip = ObjectRepositoryAttribute.GetTip(objectType, true);

            return(RepositoryFactory.Create(objectTip.RepositoryInterfaceType));
        }