예제 #1
0
        public override void ProcessHolder(AttributeHolder holder)
        {
            DefClass type = (DefClass)holder;

            foreach (string[] names in _interfaceNames)
            {
                List <DefClass> ifaces = new List <DefClass>();
                foreach (string ifacename in names)
                {
                    ifaces.Add(type.FindType <DefClass>(ifacename));
                }
                Interfaces.Add(ifaces.ToArray());
            }
        }
예제 #2
0
        public override void ProcessHolder(AttributeHolder holder)
        {
            switch (WrapType)
            {
            case WrapTypes.NativePtrValueType:
            case WrapTypes.ValueType:
                if (!holder.HasAttribute <ValueTypeAttribute>())
                {
                    holder.Attributes.Add(new ValueTypeAttribute());
                }
                break;

            case WrapTypes.Overridable:
                DefClass type = (DefClass)holder;
                AddAttributeToInheritanceChain(type, new BaseForSubclassingAttribute());
                break;
            }
        }
예제 #3
0
 public virtual void ProcessHolder(AttributeHolder holder)
 {
 }
예제 #4
0
        public override void ProcessHolder(AttributeHolder holder)
        {
            DefClass type = (DefClass)holder;

            AddAttributeToInheritanceChain(type, new BaseForSubclassingAttribute());
        }
예제 #5
0
 private void AddAttributeInHolder(AttributeHolder holder, AutoWrapAttribute attr)
 {
     holder.Attributes.Add(attr);
     _holders.Add(new KeyValuePair <AttributeHolder, AutoWrapAttribute>(holder, attr));
 }