public void FromProperty () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.AreEqual (pi.GetGetMethod (), i.UnderlyingGetter, "#1"); Assert.IsNull (i.UnderlyingSetter, "#2"); Assert.AreEqual (5, i.GetValue ("hello"), "#3"); }
public void SetValueOnEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.SetValue (AppDomain.CurrentDomain, new AssemblyLoadEventHandler (DummyAssemblyLoad)); }
public void GetValueOnEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.GetValue (AppDomain.CurrentDomain); }
public void SetValueOnIrrelevantObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue ("hello", 5); }
public void GetValueOnIrrelevantObject () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (new StringBuilder ()); }
public void SetValueOnReadOnlyProperty () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue ("hello", 5); }
internal XamlMember(PropertyInfo propertyInfo, XamlSchemaContext schemaContext, XamlMemberInvoker invoker, MemberReflector reflector) { if (propertyInfo == null) { throw new ArgumentNullException(nameof(propertyInfo)); } if (schemaContext == null) { throw new ArgumentNullException(nameof(schemaContext)); } _name = propertyInfo.Name; _declaringType = schemaContext.GetXamlType(propertyInfo.DeclaringType); _memberType = MemberType.Instance; _reflector = reflector; _reflector.Invoker = invoker; _underlyingMember.Value = propertyInfo; }
internal XamlMember(string attachablePropertyName, MethodInfo getter, MethodInfo setter, XamlSchemaContext schemaContext, XamlMemberInvoker invoker, MemberReflector reflector) { if (attachablePropertyName == null) { throw new ArgumentNullException("attachablePropertyName"); } if (schemaContext == null) { throw new ArgumentNullException("schemaContext"); } MethodInfo info = getter ?? setter; if (info == null) { throw new ArgumentNullException(System.Xaml.SR.Get("GetterOrSetterRequired"), null); } ValidateGetter(getter, "getter"); ValidateSetter(setter, "setter"); this._name = attachablePropertyName; this._declaringType = schemaContext.GetXamlType(info.DeclaringType); this._reflector = reflector; this._memberType = MemberType.Attachable; this._reflector.Invoker = invoker; this._underlyingMember.Value = getter ?? setter; }
public XamlMember(string attachableEventName, MethodInfo adder, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(schemaContext, invoker) { if (attachableEventName == null) { throw new ArgumentNullException("attachableEventName"); } if (adder == null) { throw new ArgumentNullException("adder"); } Name = attachableEventName; VerifyAdderSetter(adder); underlying_member = adder; DeclaringType = schemaContext.GetXamlType(adder.DeclaringType); target_type = schemaContext.GetXamlType(typeof(object)); UnderlyingSetter = adder; is_event = true; is_attachable = true; }
public XamlMember(PropertyInfo propertyInfo, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(schemaContext, invoker) { if (propertyInfo == null) { throw new ArgumentNullException("propertyInfo"); } Name = propertyInfo.Name; underlying_member = propertyInfo; DeclaringType = schemaContext.GetXamlType(propertyInfo.DeclaringType); target_type = DeclaringType; UnderlyingGetter = propertyInfo.GetGetMethod(true); UnderlyingSetter = propertyInfo.GetSetMethod(true); }
public XamlMember(string attachablePropertyName, MethodInfo getter, MethodInfo setter, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(schemaContext, invoker) { if (attachablePropertyName == null) { throw new ArgumentNullException("attachablePropertyName"); } if (getter == null && setter == null) { throw new ArgumentNullException("getter", "Either property getter or setter must be non-null."); } Name = attachablePropertyName; VerifyGetter(getter); VerifyAdderSetter(setter); underlying_member = getter ?? setter; DeclaringType = schemaContext.GetXamlType(underlying_member.DeclaringType); target_type = schemaContext.GetXamlType(typeof(object)); UnderlyingGetter = getter; UnderlyingSetter = setter; is_attachable = true; }
public XamlMember(ParameterInfo parameterInfo, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(schemaContext, invoker) { var declaringType = schemaContext.GetXamlType(parameterInfo.Member.DeclaringType); Name = parameterInfo.Name; context = declaringType.SchemaContext; DeclaringType = declaringType; target_type = DeclaringType; type = schemaContext.GetXamlType(parameterInfo.ParameterType); }
internal ValueNodeXamlMemberInvoker(XamlDebuggerXmlReader parent, XamlMemberInvoker wrapped, DocumentRange attributeValueRange) { this.parent = parent; this.wrapped = wrapped; this.attributeValueRange = attributeValueRange; }
internal static XamlMember ReplaceXamlMemberInvoker(this XamlMember originalXamlMember, XamlSchemaContext schemaContext, XamlMemberInvoker newInvoker) { if (originalXamlMember.IsEvent) { if (originalXamlMember.IsAttachable) { UnitTestUtility.Assert(originalXamlMember.UnderlyingMember is MethodInfo, "Guaranteed by XamlMember."); return(new XamlMember(originalXamlMember.Name, originalXamlMember.UnderlyingMember as MethodInfo, schemaContext, newInvoker)); } else { UnitTestUtility.Assert(originalXamlMember.UnderlyingMember is EventInfo, "Guaranteed by XamlMember."); return(new XamlMember(originalXamlMember.UnderlyingMember as EventInfo, schemaContext, newInvoker)); } } else if (originalXamlMember.IsDirective) { return(originalXamlMember); } else if (originalXamlMember.IsUnknown) { return(originalXamlMember); } else { if (originalXamlMember.IsAttachable) { MethodInfo attachablePropertyMethod = originalXamlMember.UnderlyingMember as MethodInfo; if (attachablePropertyMethod.ReturnType == typeof(void)) { return(new XamlMember(originalXamlMember.Name, null, originalXamlMember.UnderlyingMember as MethodInfo, schemaContext, newInvoker)); } else { return(new XamlMember(originalXamlMember.Name, originalXamlMember.UnderlyingMember as MethodInfo, null, schemaContext, newInvoker)); } } else { PropertyInfo propertyInfo = originalXamlMember.UnderlyingMember as PropertyInfo; if (propertyInfo != null) { return(new XamlMember(propertyInfo, schemaContext, newInvoker)); } else { return(originalXamlMember); } } } }
public void GetValueOnIrrelevantObject () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.Throws<TargetException> (() => i.GetValue (new StringBuilder ())); }
public void SetValueNullObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue (null, 5); }
public void SetValueOnIrrelevantObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.Throws<TargetException> (() => i.SetValue ("hello", 5)); }
public XamlMember(PropertyInfo propertyInfo, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(propertyInfo, schemaContext, invoker, new MemberReflector(false /*isEvent*/)) { }
public void GetValueOnEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); Assert.Throws<NotSupportedException> (() => i.GetValue (AppDomain.CurrentDomain)); }
public XamlMember(EventInfo eventInfo, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(eventInfo, schemaContext, invoker, new MemberReflector(true /*isEvent*/)) { }
public void SetValueOnEventValueMismatch () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); Assert.Throws<ArgumentException> (() => i.SetValue (AppDomain.CurrentDomain, 5)); }
public void SetValueOnReadWriteProperty () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); var sb = new StringBuilder (); i.SetValue (sb, 5); Assert.AreEqual (5, sb.Length, "#1"); }
public void UnderlyingSetter () { var i = new XamlMemberInvoker (new MyXamlMember (str_len, sctx)); // call XamlMember's UnderlyingSetter. Assert.Throws<MyException> (() => { var t = i.UnderlyingSetter; }, "#1"); }
public void GetValueOnTypeValue () { var xm = XamlLanguage.Type.GetMember ("Type"); var i = new XamlMemberInvoker (xm); var o = i.GetValue (new TypeExtension (typeof (int))); Assert.AreEqual (typeof (int), o, "#1"); }
public void SetValueNullObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.Throws<ArgumentNullException> (() => i.SetValue (null, 5)); }
public void FromEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); Assert.IsNull (i.UnderlyingGetter, "#1"); Assert.AreEqual (ei.GetAddMethod (), i.UnderlyingSetter, "#2"); }
public void GetValueOnWriteOnlyProperty () { var pi = xr_resolver; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.Throws<NotSupportedException> (() => i.GetValue (new XmlUrlResolver ())); }
public void SetValueOnEventValueMismatch () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.SetValue (AppDomain.CurrentDomain, 5); }
public void SetValueOnReadOnlyProperty () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.Throws<NotSupportedException> (() => i.SetValue ("hello", 5)); }
public void UnderlyingSetter () { var i = new XamlMemberInvoker (new MyXamlMember (str_len, sctx)); // call XamlMember's UnderlyingSetter. Assert.IsNull (i.UnderlyingSetter, "#1"); }
public XamlMember(string attachablePropertyName, MethodInfo getter, MethodInfo setter, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(attachablePropertyName, getter, setter, schemaContext, invoker, new MemberReflector(getter, setter, false /*isEvent*/)) { }
public void GetValueNullObject () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (null); }
public XamlMember(string attachableEventName, MethodInfo adder, XamlSchemaContext schemaContext, XamlMemberInvoker invoker) : this(attachableEventName, adder, schemaContext, invoker, new MemberReflector(null, adder, true /*isEvent*/)) { }
public void GetValueOnWriteOnlyProperty () { var pi = xr_resolver; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (new XmlUrlResolver ()); }
internal XamlMember(string attachableEventName, MethodInfo adder, XamlSchemaContext schemaContext, XamlMemberInvoker invoker, MemberReflector reflector) { if (attachableEventName == null) { throw new ArgumentNullException("attachableEventName"); } if (adder == null) { throw new ArgumentNullException("adder"); } if (schemaContext == null) { throw new ArgumentNullException("schemaContext"); } ValidateSetter(adder, "adder"); this._name = attachableEventName; this._declaringType = schemaContext.GetXamlType(adder.DeclaringType); this._reflector = reflector; this._memberType = MemberType.Attachable; this._reflector.Invoker = invoker; this._underlyingMember.Value = adder; }