Pull to refresh

Comments 18

Ладно, я понимаю, когда у английского термина нет русского варианта или перевод не отображает суть, но у слова property есть перевод и он точно отражает суть — свойство. Это о пропертях.
Вкусовщина. Мне слышится в данном контексте слово «пропертя» приятнее чем «свойство».
Видать у вас в обиходе слова ихний, исчо и тд
Было бы гораздо интеснее если бы можно было через command line parameters передать, а так получается что надо несколько версий файла проекта держать. Или их чем-то автоматически править. Это не отличается от правки исходного кода или помены одного cs файла на разные версии при сборке.
Можно передавать значение любого свойства из PropertyGroup через коммандную строку, например:
/p:ExampleValue=SomeValue
И всё-таки, какие преимущества у вашего подхода относительно классического использования App.config файла?
Мой поинт именно в том, чтобы зашить некоторую метоинформацию внутрь сборки. Мне не нужна возможность конфигурирования этой информации ни на каком этапе жизни приложения кроме шага сборки.
А чем это лучше, например, ресурсов? Вообще, без более подробного описания решаемой проблемы статья напоминает небезызвестную картинку про троллейбус из хлеба.
UFO just landed and posted this here
Это адаптация app.config в dotnet core, но, как я ответил выше, мой поинт именно в том, что я не хочу конфигурировать эти значения. Я решаю задачу сохранения метаинформации в сборку. Т.е. моя задача и решение не связаны с конфигурацией приложения. Конфигурация отлично решается стандартными средствами типа appsettings.json
Задача: перед сборкой определить константу.
Решение 1: перед сборкой отредактировать строку в исходнике, что-то вида
public const string myValue = "default";
, что приведет к максимально быстрому доступу к значению строки myValue при исполнении.
Решение 2: перед сборкой отредактировать строку в csproj, в рантайме добавить строковую переменную, для инициализации значения которой привлечь механизм аттрибутов и рефлексию. Зачем?
Редактировать исходники перед сборкой *сарказм* это вы круто придумали *сарказм*, будете руками перед каждым коммитом править эту строку, чтоб билдмашина правильно собрала? Дорогой друг, читайте внимательно первый абзац статьи. Да и просто статью в целом:
Первая мысль, которая меня посетила: перед билдом сгенерить файлик с константами по шаблону, но хотелось бы обойтись без привлечения тяжелой артиллерии шаблонизаторов.
Редактировать исходники перед сборкой сарказм это вы круто придумали сарказм, будете руками перед каждым коммитом править эту строку, чтоб билдмашина правильно собрала?

Да нет, на этапе сборки это делается. Есть бессчестное множество генераторов информации о версии, которые так и работают.

, что приведет к максимально быстрому доступу к значению строки myValue при исполнении.
Решение 2: перед сборкой отредактировать строку в csproj, в рантайме добавить строковую переменную, для инициализации значения которой привлечь механизм аттрибутов и рефлексию. Зачем?

По этому поводу могу сказать, что никто не мешает вам один раз на старте приложения зачитать все значения с подобных атрибутов в статическую структуру и использовать так же быстро как и в вашем «Решение 1». Просто в статье я посчитал ненужным писать уж столь очевидные вещи.
использовать так же быстро как и в вашем «Решение 1».

Я бы это померял. Как-то принято думать, что константы — быстрее, чем статические поля.

О, спасибо, прикольная вещь. Можно, например, так зашивать на сборочном сервере в код ключи доступа к каким-то ресурсам или маркировать бинарники отдаваемые пользователю.

Можно, например, так зашивать на сборочном сервере в код ключи доступа к каким-то ресурсам

Б — безопасность.

Sign up to leave a comment.

Articles