C# .net 8 Reflection не устанавливает свойство, когда приложение опубликованоC#

Место общения программистов C#
Ответить
Anonymous
 C# .net 8 Reflection не устанавливает свойство, когда приложение опубликовано

Сообщение Anonymous »

Код, показанный ниже, работает в .net 4.6.2, и он работает в режиме отладки для .net 8. < /p>
Код, однако, сбой после этого, он опубликован как один файл И когда я пытаюсь запустить его. Исключение - < /p>

Метод набора свойств, не найденный < /p>
< /blockquote>
код: < /p >
///
/// This gets called at startup. The point of this is to prevent us from
/// making everything a const with [General.Yes = "General.Yes"]. Saves a step in
/// development that was getting annoying.
///
public static void SetupKeys()
{
var thisNamespace = typeof( TranslationKeys ).Namespace;
var thisName = nameof( TranslationKeys );
var fullNameStart = string.Concat( thisNamespace, ".", thisName, "+" );

var classes = Assembly.GetExecutingAssembly()
.GetTypes()
.Where( t => t.IsClass && t.IsNested && t.FullName != null && t.FullName.StartsWith( fullNameStart ) );

foreach (var c in classes)
{
var className = c.Name;
var props = c.GetProperties();

foreach (var p in props)
{
var propName = p.Name;
p.SetValue(null, string.Concat(className, ".", propName), BindingFlags.NonPublic, );
}
}
}

///
/// Things that we will use all over the place.
///
public static class General
{
public static string Yes { get; private set; } = string.Empty;
}
< /code>
Я просто наткнулся на это. Поскольку проблема возникает после упаковки, единственное, что я могу сейчас сделать, - это добавить несколько операторов журнала, но мы знаем, что ошибка - это «метод набора свойств, не найденные», и мы знаем, что это значит. Итак ... что теперь?

Подробнее здесь: https://stackoverflow.com/questions/794 ... is-publish
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»