Я использую Reflection.Emit для определения нового типа, и я бы хотел, чтобы тип реализовал IComparable(T)
, где T
был бы новым типом.Использование Reflection.Emit для реализации общего интерфейса
class DefinedType : IComparable<DefinedType>
{
//...
}
Мне кажется, что у меня проблема с курицей и яйцом.
Как резерв, я всегда могу просто реализовать IComparable
, но, если возможно, мне нужен общий интерфейс; Я просто не могу понять, как я могу это сделать, используя Emit, потому что тип не существует до того, как я его определю.
Желание у меня было время, чтобы поиграть с этим .., но я с нетерпением жду другого, кто отвечает! –
Я вижу метод ['addInterfaceImplementation'] (http://msdn.microsoft.com/en-us/library/system.reflection.emit.typebuilder.addinterfaceimplementation (v = vs.110) .aspx), который вы можете вызвать на вашем ['TypeBuilder'] (http://msdn.microsoft.com/en-us/library/system.reflection.emit.typebuilder (v = vs.110) .aspx) после того, как вы построили новый тип. Разве вы не сможете добавить 'Comparable' после этого к вашему типу с помощью этого метода? –
@JeroenVannevel Я не думаю, что это разрешено. Я уверен, что вы можете только один раз вызвать CreateType. – Anthony