brynrhodes / fast-member

Automatically exported from code.google.com/p/fast-member
0 stars 0 forks source link

allowNonPublicAccessors does not work with ObjectAccessor #12

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Here is your code
As you can see allowNonPublicAccessors is not used

    /// <summary>
    /// Wraps an individual object, allowing by-name access to that instance
    /// 
    /// </summary>
    public static ObjectAccessor Create(object target, bool allowNonPublicAccessors)
    {
      if (target == null)
        throw new ArgumentNullException("target");
      IDynamicMetaObjectProvider target1 = target as IDynamicMetaObjectProvider;
      if (target1 != null)
        return (ObjectAccessor) new ObjectAccessor.DynamicWrapper(target1);
      else
        return (ObjectAccessor) new ObjectAccessor.TypeAccessorWrapper(target, TypeAccessor.Create(target.GetType()));
    }

Original issue reported on code.google.com by P.Le...@zelenski.ru on 28 Nov 2014 at 3:20

GoogleCodeExporter commented 8 years ago
For fixit. add second parameter at   TypeAccessor.Create.

diff --git a/FastMember/ObjectAccessor.cs b/FastMember/ObjectAccessor.cs
index 13b77cc..5f40b34 100644
--- a/FastMember/ObjectAccessor.cs
+++ b/FastMember/ObjectAccessor.cs
@@ -58,7 +58,7 @@ public static ObjectAccessor Create(object target, bool 
allowNonPublicAccessors)
             IDynamicMetaObjectProvider dlr = target as IDynamicMetaObjectProvider;
             if (dlr != null) return new DynamicWrapper(dlr); // use the DLR
 #endif
-            return new TypeAccessorWrapper(target, 
TypeAccessor.Create(target.GetType()));
+            return new TypeAccessorWrapper(target, 
TypeAccessor.Create(target.GetType(), allowNonPublicAccessors));
         }
         sealed class TypeAccessorWrapper : ObjectAccessor
         {

Original comment by takekazu...@kyrt.in on 1 Apr 2015 at 10:50