Как изменить параметр в программе

У меня есть программа на C# (Не моя, но доступ к исходному коду есть) и я пишу как бэ плагин к этой программе , который должен менять значение в , скажем:
        public static bool who = false;
На:
        public static bool who = true;
Или
whoClass.who1(21, -1, -1, "", number41, 1f, 0.0f, 0.0f, 0);
На:
whoClass.who1(21, -1, -1, "", number41, 12f, 1.0f, 0.2f, 0);
Это вообще возможно?
7 ответов

А в чем проблема? Открываете этот исходник в Visual Studio (или любой другой IDE), и меняете ваши строчки и компилируете, на выходе получаете exe'шник этой программой, с внесенными вами изменениями.


BigVan, проблема в том, что делать несколько почти одинаковых программ - не вариант. Я хочу сделать лаунчер , который будет менять эти значения, при выборе соответствующих пунктов.


ClassName.Who = true;
whoClass.who1(21, -1, -1, "", number41, 1f, 0.0f, 0.0f, 0);
Если тут поля закрытые, можно добавить метод для установки значений или сделать открытыми.


Если тут поля закрытые, можно добавить метод для установки значений или сделать открытыми.
т.е влезть в чужой класс? Если поля закрытые, то вряд-ли. Да и изменять сам класс не получится. Только если Вы сами переделаете программу.


По факту вам просто либо конструктор нужно сделать если я правильно понял. Либо принимать какимто образом данные например сериализацией класса. Лучше обьясните задание возможно обьясню.


т.е влезть в чужой класс?
Если только для себя почему бы и нет. Если лаунчером будут пользоваться и другие, тогда проблема. Хотя тут хорошо бы увидеть исходники того что нужно поменять.


Если поля закрытые, то вряд-ли.
С помощью рефлексии можно получить доступ даже к закрытым полям, типам и т.д. А если
public static bool who = false;
Тут даже экземпляр типа создавать не придётся, просто изменил и всё