如果我知道这种类型,我就会这样做;
TypeA.Get<TypeA>(Id).Delete();
我想做的就是这个;
object ObjectA;
(BaseEntity<typeof(ObjectA)>).Get<(BaseEntity<typeof(ObjectA)>)>(Id).Delete();
哪个不起作用,任何想法如何正确地做到这一点?
答案 0 :(得分:1)
你可以:
Get
和Delete
方法,或者:Get
和dynamic
来调用Delete
由于你放弃了静态打字,为了简单起见,我会选择第二个选项。
var typeA = objectA.GetType();
var fEntityType = typeof(FEntity<>).MakeGenericType(typeA);
var getMethod = fEntityType.GetMethod("Get").MakeGenericMethod(typeA);
dynamic result = getMethod.Invoke(null, new object[]{ Id });
result.Delete();