实现具有泛型类型的接口,该接口比我需要调用的方法的约束更少

tec*_*414 6 c# generics

我正在实现一个接口,以便将自定义业务逻辑注入到使用Microsoft Unity的框架中.我的核心问题是我需要实现的接口定义了以下方法:

T InterfaceMethod<T>();
Run Code Online (Sandbox Code Playgroud)

T没有约束.在我的代码中,我需要从不同的第三方库调用方法,方法签名为

T AnotherMethod<T>() where T: class;
Run Code Online (Sandbox Code Playgroud)

类型T对逻辑有重要意义AnotherMethod.有没有办法AnotherMethod<T>()在我的实现中调用,而不使用反射?如果T是值类型,我显然需要采取替代操作.有没有办法让autobox解决这个问题?

Tim*_* S. 1

我认为如果不经过反思,你所寻找的东西是不可能实现的。最好的情况是,您只需调用AnotherMethod<object>()并投射结果即可。AnotherMethod但只有当sT对您的目的不重要时,这才真正有效。