public void SetProxy(IAopProxy target) { Shape shape = target as Shape; if (shape == null) throw new ArgumentException("target is not an IShape"); this.shape = shape; DesignableAttribute attrib = (DesignableAttribute)shape.GetType().GetCustomAttributes(typeof(DesignableAttribute), true)[0]; this.FillColor = attrib.FillColor; this.BorderColor = attrib.BorderColor; this.BorderSize = attrib.BorderSize; }