public void AddDomainAttribute(TypeBuilder type, DomainComponetReisterType domainType) { var ctor = typeof(DomainAttribute).GetConstructor(new[] { typeof(DomainComponetReisterType) }); if (ctor == null) { throw new Exception("没有找到合适的构造函数!"); } var att = new CustomAttributeBuilder(ctor, new object[] { domainType }); type.SetCustomAttribute(att); }
//public Tuple<IBusinessObject, IBusinessObject> AddFormBase(IBusinessObjectModule module,string name, string caption, // bool isBase = true, // DomainComponetReisterType registerType = DomainComponetReisterType.AutoRegisterDomainComponent, // INavigationGroup nav = null, // params Tuple<IBusinessObject, IBusinessObject>[] bases) //{ // var boName = name; // if (isBase) // boName += "Base"; // var obj = ObjectSpace.FindObject<IBusinessObject>(new BinaryOperator("Name", boName)); // var item = AddFormItemBase(module,name + "Item", caption + "明细", bases, registerType, isBase); // if (obj == null) // { // obj = ObjectSpace.CreateObject<IBusinessObject>(); // obj.Name = boName; // obj.Module = module; // obj.Caption = caption; // obj.IsAbstract = true; // obj.NavigationGroup = nav; // obj.RegisterType = registerType; // obj.CreateIndex = createIndex; // createIndex++; // foreach (var b in bases) // { // obj.Bases.Add(b.Item1); // } // if (!isBase) // { // var items = ObjectSpace.CreateObject<IListProperty>(); // items.PropertyType = item; // items.Name = "Items"; // items.Caption = "明细"; // items.IsAggreagte = true; // obj.Properties.Add(items); // } // } // return new Tuple<IBusinessObject, IBusinessObject>(obj, item); //} public IBusinessObject AddFormItemBase(IBusinessObjectModule module, string name, string caption, Tuple <IBusinessObject, IBusinessObject>[] bases, DomainComponetReisterType registerType = DomainComponetReisterType.AutoRegisterDomainComponent, bool isBase = true) { var boName = name; if (isBase) { boName += "Base"; } var obj = ObjectSpace.FindObject <IBusinessObject>(new BinaryOperator("Name", boName)); if (obj == null) { obj = ObjectSpace.CreateObject <IBusinessObject>(); obj.Module = module; obj.Name = boName; obj.Caption = caption; obj.IsAbstract = true; obj.CreateIndex = createIndex; obj.RegisterType = registerType; createIndex++; foreach (var b in bases) { obj.Bases.Add(b.Item2); } } return(obj); }
public DomainAttribute(DomainComponetReisterType type = DomainComponetReisterType.AutoRegisterDomainComponent) { this.DomainComponentType = type; }