Вызов fieldBuilder.SetValue(...)
в настоящее время не поддерживается согласно документации . Рекомендации по документации:
В качестве обходного пути, извлеките FieldInfo, отражая готовый тип, и вызовите SetValue, чтобы установить значение поля.
Это было возможно в . NET Каркас для stati c только для инициализации полей, однако больше не поддерживается в. NET Core .
Как инициализировать stati c только для инициализации поле динамического ввода c введите. NET Core?
Правка (добавлен пример):
var fb = builder.DefineField("foo", typeof(object), FieldAttributes.Static | FieldAttributes.PrivateScope | FieldAttributes.InitOnly);
// fb.SetValue(...) <-- not supported according to the doc
var c = builder.DefineTypeInitializer().GetILGenerator()
// is it possible to pass myInstance directly to type initializer?
var t = builder.CreateType();
var f = t.GetField("foo", BindingFlags.Static | BindingFlags.NonPublic);
f.SetValue(null, myInstance); // <-- not longer works in .NET Core