类型不包含 IsAssignableFrom 的定义

Type does not contain a definition for IsAssignableFrom

根据 this 文档,我正在尝试使用 IsAssignableFrom 方法。但是,我收到以下异常:

Error CS1061 'Type' does not contain a definition for 'IsAssignableFrom' and no extension method 'IsAssignableFrom' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)

违规行是

if (!desiredType.IsAssignableFrom(outputType))

在下面class:

internal class DefaultResolvable : IResolvable
{
    internal IDictionary<Type, Type> TypeContainer { get; set; }

    public T Resolve<T>()
    {
        if(this.TypeContainer == null)
        {
            throw new TypeRepositoryEmptyException();
        }

        var desiredType = typeof(T);
        var outputPair = this.TypeContainer.FirstOrDefault(pair => pair.Key == desiredType);
        if(outputPair.Key == null || outputPair.Value == null)
        {
            throw new CannotResolveTypeException();
        }

        var outputType = outputPair.Value;
        if (!desiredType.IsAssignableFrom(outputType))
        {
            throw new CannotResolveTypeException();
        }

        return (T)Activator.CreateInstance(outputType);
    }
}

这里有我遗漏的东西吗?为什么我会收到此异常?

在 .Net Standard 或 .Net Core 中,您应该调用 GetTypeInfo()

if (!desiredType.GetTypeInfo().IsAssignableFrom(outputType))