示例#1
0
        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);
        }
示例#2
0
        public override bool Equals(object obj)
        {
            if (null == obj)
            {
                return(false);
            }
            ExternData ed = (ExternData)obj;

            return(string.Equals(Key, ed.Key));
        }