Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Boderman
4 / 4 / 4
Регистрация: 25.03.2013
Сообщений: 140
1

Как задать значения статического поля класса используя рефлексию?

25.09.2015, 14:23. Просмотров 862. Ответов 5
Метки нет (Все метки)

Народ как задать значение статическому полю класса при помощи рефлексии.

Есть тема Как получить значения статического поля класса с помощью рефлексии?

Вот мне нужно тоже самое только наоборот)))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2015, 14:23
Ответы с готовыми решениями:

Как получить значения статического поля класса с помощью рефлексии?
Есть библиотека классов в ней некоторый класс А. у этого класса есть...

Рефлексия, получить содержание поля статического класса
static class Messange { public static readonly string mes...

Присвоение переменной из статического класса значения из формы
здравствуйте, у меня есть static class Data, в котором имеется: public...

Как получить доступ к приватному полю используя рефлексию? (в одном классе)
Хай. Есть такой класс class TestClass { public int a...

Как, используя рефлексию, получить перечень событий, связанных с той же кнопкой?
Не имя события- имя события и дурак получит. А само событие! Ну то есть:...

5
Storm23
Эксперт .NETАвтор FAQ
6472 / 3898 / 1436
Регистрация: 11.01.2015
Сообщений: 5,058
Записей в блоге: 32
25.09.2015, 14:30 2
Boderman, неужели трудно заглянуть в MSDN, что бы узнать? Или трудно догадаться, что если есть метод GetValue, то есть и SetValue?
C#
1
typeA.GetField("ID").SetValue(null, newValue);
1
Boderman
4 / 4 / 4
Регистрация: 25.03.2013
Сообщений: 140
25.09.2015, 14:46  [ТС] 3
Ой,забыл предупредить поле приватное )))

Добавлено через 1 минуту
Storm23, прошу прощения что сразу не предупредил.
0
Storm23
Эксперт .NETАвтор FAQ
6472 / 3898 / 1436
Регистрация: 11.01.2015
Сообщений: 5,058
Записей в блоге: 32
25.09.2015, 14:57 4
Лучший ответ Сообщение было отмечено Boderman как решение

Решение

Цитата Сообщение от Boderman Посмотреть сообщение
поле приватное
Настройки рефлексии задаются флагами BindingFlags:
C#
1
typeA.GetField("ID", BindingFlags.NonPublic | BindingFlags.Static).SetValue(null, newValue);
1
Boderman
4 / 4 / 4
Регистрация: 25.03.2013
Сообщений: 140
25.09.2015, 15:05  [ТС] 5
Storm23, к сожалению не помогло.

Вот объявление поля:
C#
1
static private object lock_logwrite = new object();
Вот то что я написал:
C#
1
2
Type type = typeof(Hs);
var field = type.GetField("lock_logwrite", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
В итоге переменная field равна null.
0
Someone007
2371 / 1861 / 853
Регистрация: 09.05.2015
Сообщений: 4,605
Завершенные тесты: 1
25.09.2015, 16:10 6
Логично что она null, т.к. вы задали неверные флаги.
1
25.09.2015, 16:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2015, 16:10

Ошибка при вызове статического конструктора статического класса
Здравствуйте! Проблема в следующем: Есть класс public static class 1 {...

Через рефлексию присвоить одинаковое значение всем свойствам класса
есть, например, класс class Item { public string FIO...

Как сделать расширяющий метод для статического или абстрактного класса?
Как сделать расширяющий метод для статического или абстрактного класса? public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru