fast-member icon indicating copy to clipboard operation
fast-member copied to clipboard

ObjectAccessor throws ArgumentOutOfRangeException when accessing private members

Open dotnetchris opened this issue 8 years ago • 1 comments

Failing test attached

    public class ObjectAccessorPrivateAccessTest
    {
        [Test]
        public void Fails_when_accessing_private_field()
        {
            var token = new Wrapper<Bar>(new Bar {Title = "#1 Title", Url = "#1 Url"});

            var @public = 
                        ObjectAccessor.Create(token.Item, true)["DebuggerDisplay"];
            var @private = 
                        ObjectAccessor.Create(token.Item, true)["DebuggerDisplayPrivate"];
        }

        [DebuggerDisplay("{DebuggerDisplay,nq}")]
        public class Wrapper<T>
        {
            public Wrapper(T item)
            {
                Item = item;
            }

            public T Item { get; }
            public double Score { get; set; }

            private string DebuggerDisplay => 
            $"Score = {Score}, {ObjectAccessor.Create(Item, true)["DebuggerDisplay"]}";
        }

        [DebuggerDisplay("{DebuggerDisplay,nq}")]
        public class Bar
        {
            public string Url { get; set; }
            public string Title { get; set; }

            private string DebuggerDisplayPrivate => $"Title = {Title}, Url = {Url}";
            public string DebuggerDisplay => $"Title = {Title}, Url = {Url}";
        }
    }

dotnetchris avatar Mar 15 '16 19:03 dotnetchris

Related: #9

alexb5dh avatar Sep 17 '19 14:09 alexb5dh