Beispiel #1
0
        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);
        }
Beispiel #2
0
        //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);
        }
Beispiel #3
0
 public DomainAttribute(DomainComponetReisterType type = DomainComponetReisterType.AutoRegisterDomainComponent)
 {
     this.DomainComponentType = type;
 }