private static FlagBitmask FlagsDescriptor(int bitSize, params string[] flagNames) { var dt = new FlagBitmask(typeof(FlagField)); var ff = new FlagField(bitSize, flagNames, dt); return(dt.DFD_FromComponent(ff)); }
public virtual FlagBitmask DFD_FromComponent(object component) { if (component == null) { throw new ArgumentNullException("component"); } if (!_type.IsAssignableFrom(component.GetType())) { throw new ArgumentException(null, "component"); } FlagBitmask desc = new FlagBitmask((IndustrialPark.FlagField)component); desc._type = _type; desc.Component = component; // shallow copy on purpose desc._typeConverter = _typeConverter; desc._editors = _editors; desc._defaultEvent = _defaultEvent; desc._defaultProperty = _defaultProperty; desc._attributes = _attributes; desc._events = _events; desc.OriginalProperties = OriginalProperties; // track values List <PropertyDescriptor> properties = new List <PropertyDescriptor>(); foreach (PropertyDescriptor pd in Properties) { DynamicProperty ap = new DynamicProperty(desc, pd, component); properties.Add(ap); } desc.Properties = new PropertyDescriptorCollection(properties.ToArray()); return(desc); }