Изменение private полей через рефлекшн
От: Shadowspan Россия  
Дата: 11.04.03 10:31
Оценка:
Вот код:



using System;
using System.Reflection;

namespace ConsoleApplication2
{
    class Class1
    {
        
        public class A1 
        {
            private string b = "123";

            public string B { get { return b; } }
        }

        [STAThread]
        static void Main(string[] args)
        {
            A1 bbb = new A1();
            Console.WriteLine(bbb.B);
            bbb.GetType().GetField("b", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(bbb, "ghq");
            Console.WriteLine(bbb.B);
            Console.ReadLine();
        }
    }
}


На Framework 1.0 работает. Это как баг или фича, если буду использовать, то потом на других версиях Framework не отвалится?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.