internal PropertySegmentPropertyInfo(System.Workflow.ComponentModel.Design.PropertySegment propertySegment, PropertyInfo realPropInfo) { this.realPropInfo = realPropInfo; this.propertySegment = propertySegment; }
internal PropertySegmentPropertyInfo(System.Workflow.ComponentModel.Design.PropertySegment propertySegment, PropertyDescriptor realPropDesc) { this.realPropDesc = realPropDesc; this.propertySegment = propertySegment; }
internal PropertySegmentPropertyInfo(System.Workflow.ComponentModel.Design.PropertySegment propertySegment, PropertyDescriptor realPropDesc) { this.realPropDesc = realPropDesc; this.propertySegment = propertySegment; }
internal PropertySegmentPropertyInfo(System.Workflow.ComponentModel.Design.PropertySegment propertySegment, PropertyInfo realPropInfo) { this.realPropInfo = realPropInfo; this.propertySegment = propertySegment; }
public override void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) { if (obj == null) { throw new ArgumentNullException("obj"); } string name = this.Name; System.Workflow.ComponentModel.Design.PropertySegment segment = obj as System.Workflow.ComponentModel.Design.PropertySegment; if (((segment != null) ? (segment.Object as Activity) : (obj as Activity)) != null) { Type declaringType = this.DeclaringType; if (!string.IsNullOrEmpty(name) && (declaringType != null)) { DependencyProperty.FromName(name, declaringType); } } PropertyDescriptor descriptor = null; object component = null; if (segment != null) { PropertyDescriptorCollection properties = null; TypeConverter converter = TypeDescriptor.GetConverter(segment.Object); if ((converter != null) && converter.GetPropertiesSupported()) { DummyTypeDescriptorContext context = new DummyTypeDescriptorContext(segment.ServiceProvider, segment.Object, this.realPropDesc); properties = converter.GetProperties(context, segment.Object, new Attribute[0]); } else { properties = TypeDescriptor.GetProperties(segment.Object); } foreach (PropertyDescriptor descriptor2 in properties) { if (descriptor2.Name == name) { descriptor = descriptor2; } else if (descriptor2.Converter != null) { DummyTypeDescriptorContext context2 = new DummyTypeDescriptorContext(segment.ServiceProvider, segment.Object, descriptor2); if ((descriptor2.GetValue(segment.Object) != null) && descriptor2.Converter.GetPropertiesSupported(context2)) { foreach (PropertyDescriptor descriptor3 in descriptor2.Converter.GetProperties(context2, descriptor2.GetValue(segment.Object), new Attribute[0])) { if (descriptor3.Name == name) { descriptor = descriptor3; } } } } } component = segment.Object; } else { descriptor = TypeDescriptor.GetProperties(obj)[name]; component = obj; } if ((descriptor != null) && (component != null)) { descriptor.SetValue(component, value); } }