[Name("Admin")]
public class TestAdmin : TestUserBase<TestAdmin>
{
public TestAdmin(Type webDriverType) : base(webDriverType)
{
}
}
현재이 양식의 클래스는 Reflection.Emit을 사용하여 런타임에 만들고 싶습니다. 그러나, 나는 내가 부모를 추가하려고 문제로 실행 해요 -을 TestAdmin 클래스는 런타임 이전에 존재하지 않기 때문에, 나는유형을 Reflection.Emit의 유형 매개 변수로 사용하기
TestUserBase<TestAdmin>
어떤 아이디어를 만드는 방법을 몰라?
TypeBuilder tb = mb.DefineType("TestAdmin", TypeAttributes.Public);
tb.SetParent(typeof(TestUserBase<>).MakeGenericType(tb));
Type theType = tb.CreateType();
기본 제네릭 클래스에 대한 인수가 * this * 클래스이기 때문에 특별히 문제가 있습니까? –
나는 닭고기와 달걀 문제가 있다고 생각한다. C# 컴파일러는 IL을 생성하기 위해 Reflection.Emit을 사용하지 않았기 때문에 가능할 수도있다. 이 문제에 대한 해결책이 있는지 확실하지 않습니다 ... –
make-generic-method가 유형 작성기를 허용합니까? 실제로, 나는 고투하는 닭고기/계란이 나는 까닭을 기억하고 있습니다. 최근에 나는 reflection-emit과 같은 api를 가진 IKVM-reflection을 사용하고 있지만, 많은 부분을 수정했다. –