/// <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)); }
/// <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); //对于值对象等成员对象可以不标记仓储特性,仓储为聚合根的仓储类型 }
private void InitObject(ConstructorInfo constructor) { var objectType = constructor.DeclaringType; this.ObjectTip = ObjectRepositoryAttribute.GetTip(objectType, true); }
/// <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)); }