Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. private string _postalCode;
  2.  
  3. public string PostalCode
  4. {
  5. get { return _postalCode; }
  6. set { _postalCode = value; }
  7. }
  8.  
  9. public string PostalCode { get; set; }
  10.  
  11. private string _getBackingFieldName(string propertyName)
  12. {
  13. return string.Format("<{0}>k__BackingField", propertyName);
  14. }
  15.  
  16. private FieldInfo _getBackingField(object obj, string propertyName)
  17. {
  18. return obj.GetType().GetField(_getBackingFieldName(propertyName), BindingFlags.Instance | BindingFlags.NonPublic);
  19. }
  20.  
  21. var field = _getBackingField(myObjectToChange, "State");
  22. field.SetValue(myObjectToChange, ObjectState.Active);
  23.  
  24. FieldInfo[] myInfo = ClassWithPostalCode.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
  25.  
  26. object oValue = obj.GetType().InvokeMember(fi.Name
  27. , BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance
  28. , null, obj, null);
  29.  
  30. private static FieldInfo GetBackingField(PropertyInfo pi) {
  31. if (!pi.CanRead || !pi.GetGetMethod(nonPublic:true).IsDefined(typeof(CompilerGeneratedAttribute), inherit:true))
  32. return null;
  33. var backingField = pi.DeclaringType.GetField($"<{pi.Name}>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic);
  34. if (backingField == null)
  35. return null;
  36. if (!backingField.IsDefined(typeof(CompilerGeneratedAttribute), inherit:true))
  37. return null;
  38. return backingField;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement