C# 无法加载类型';Microsoft.AspNetCore.Http.Internal.QueryCollection';来自程序集Microsoft.AspNetCore.Http,版本=3.1.5.0

C# 无法加载类型';Microsoft.AspNetCore.Http.Internal.QueryCollection';来自程序集Microsoft.AspNetCore.Http,版本=3.1.5.0,c#,.net,asp.net-core,C#,.net,Asp.net Core,我正在尝试将我的API项目从.net core 2.2升级到.net core 3.1 我在使用xunit编写unittest时遇到了这个异常。 异常抛出时间: Mock<IHttpContextAccessor> mockupHttpContextAccessor = new Mock<IHttpContextAccessor>(); mockupHttpContextAccessor.SetupProperty(x => x.HttpC

我正在尝试将我的API项目从.net core 2.2升级到.net core 3.1 我在使用xunit编写unittest时遇到了这个异常。 异常抛出时间:

Mock<IHttpContextAccessor> mockupHttpContextAccessor = new Mock<IHttpContextAccessor>();

            mockupHttpContextAccessor.SetupProperty(x => x.HttpContext.User, new ClaimsPrincipal(_identity));
            mockupHttpContextAccessor.SetupProperty(x => x.HttpContext.Request.Query, new QueryCollection(new Dictionary<string, StringValues>()
            {
                { "userId", new StringValues( Guid.NewGuid().ToString() ) }
            }));
Mock mockupHttpContextAccessor=new Mock();
mockupHttpContextAccessor.SetupProperty(x=>x.HttpContext.User,新的ClaimsPrincipal(_identity));
mockupHttpContextAccessor.SetupProperty(x=>x.HttpContext.Request.Query,新建QueryCollection(新建字典)()
{
{“userId”,新字符串值(Guid.NewGuid().ToString())}
}));
信息:

System.TypeLoadException:无法加载类型 来自程序集的“Microsoft.AspNetCore.Http.Internal.QueryCollection” 'Microsoft.AspNetCore.Http,版本=3.1.5.0,区域性=中性, PublicKeyToken=adb9793829ddae60'


内部的?这不在名称空间中?它来自一个使用.NetStandard 2.1的项目的引用。如果您引用这样的内部类型,则可能会出现兼容性问题。。API用内部访问修饰符标记,并且不能再由该程序集之外的代码使用。你可以试试。