Re: Изменение private полей через рефлекшн
От: Аноним  
Дата: 11.04.03 11:49
Оценка: 6 (1)
Здравствуйте, Shadowspan, Вы писали:


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


гарантию может дать только ReflectionPermission атрибут
ИМХО если делаешь для врагов — то пусть изумляются очего это вдруг изменяется private поле
Re: Изменение private полей через рефлекшн
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.04.03 18:52
Оценка: 1 (1)
Здравствуйте, Shadowspan, Вы писали:

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


Это фича. А отвалиться может если запустишь под пользователем с неадминскими правами.
... << RSDN@Home 1.0 beta 6a (np: тихо) >>
AVK Blog
Изменение 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...
Пока на собственное сообщение не было ответов, его можно удалить.