internal override void ProcessExtensionMethod(MethodInfo mi) { var target = (ReflectedPropertyTreeDefinition) PropertyTreeDefinition.FromType( mi.GetParameters()[0].ParameterType); var attachedID = GetAttachedPropertyID(mi); var existing = (ReflectedExtenderPropertyDefinition) target.GetProperty(attachedID); if (existing == null) { var extender = new ReflectedExtenderPropertyDefinition(attachedID); target.AddPropertyDefinition(extender); existing = extender; } existing.AddMethod(mi); }
internal void AddPropertyDefinition(ReflectedExtenderPropertyDefinition definition) { this.properties.AddInternal(definition); }