Это возможно. Если у вас есть ModuleBuilder
объект, mb
, то вы могли бы использовать:
mb.DefineType("Form1Objecttest123", TypeAttributes.Public, typeof(Form1))
Чтобы создать тип, который называется Form1Objecttest123
производный от Form1
.
Тогда вы прилагаете огромные усилия, испуская любые члены, которые не просто извлекаются из него.
Это почти наверняка будет никакого ценности для вас, по сравнению с добавлением свойства имени, которое получает набор в конструкторе Form1
(или единственный класса, производного от него) и либо запрашивая за него, когда вы заботитесь, и/или переопределить ToString()
, чтобы вернуть его.
Это звучит очень необычно ... не могли бы вы рассказать нам больше, почему вам нужно это делать? Возможно, будет лучшее решение. –
У меня есть цикл for, который создает несколько объектов класса (в зависимости от количества имен хостов, которые у меня есть - класс проверяет имя хоста). На данный момент все объекты называются Form1Object, но я бы предпочел иметь переменную hostname в пределах имени объекта, чтобы я мог легко различать объекты – Mike
Майк, возможно, это может быть сделано с использованием emit, но это один из тех вопросов, когда, если вы его просите, вы делаете что-то неправильно. Подумайте, как будет выглядеть ваш код, и немного пожалейте парня, которому придется его поддерживать. Попытайтесь думать о другом способе делать то, что вы пытаетесь сделать. – linkerro