我正在使用反射调用程序集上的方法,我需要首先比较该方法的一个参数是否具有与我传入的参数相同的基本类型.
但每当我打电话给passedInParameter.GetType().BaseType()它返回"
{Name ="MarshalByRefObject"FullName ="System.MarshalByRefObject"}.
它不应该显示它正在实现的接口吗?
运行时为此提供了帮助程序:
if (typeof(ISomeInterface).IsAssignableFrom(passedInParameter.GetType()))
{
}
Run Code Online (Sandbox Code Playgroud)
背景资料:
接口不是基类型。CLR 类型不能有多个基本类型。
您应该能够枚举由类型实现的接口,但正如您从我提出的解决方案中看到的那样,我不建议执行所有这些操作