public ElementBorder CreateBorder(string name, IElement element) { if (_borderMap.ContainsKey(name)) { Type type = _borderMap[name]; ConstructorInfo ci = type.GetConstructor(new Type[] { typeof(IElement) }); ElementBorder o = ci.Invoke(new object[] { element }) as ElementBorder; //VS设计器中,下列代码不会执行,保留用于可能自定义设计 if (null != element && null != element.ExternDatas) { for (int i = 0; i < element.ExternDatas.Count; i++) { ExternData data = element.ExternDatas[i];; if (null != data) { if (!string.IsNullOrEmpty(data.Key)) { PropertyInfo pi = type.GetProperty(data.Key); if (null != pi) { pi.SetValue(o, data.Value, null); } } } } return(o); } } return(null); }
public override bool Equals(object obj) { if (null == obj) { return(false); } ExternData ed = (ExternData)obj; return(string.Equals(Key, ed.Key)); }