如何在 .NetStandard2 中编写以下代码,以便它不会返回null
?
.NetFramework4.6.1
可以正常使用
MethodInfo method = typeof(System.Net.WebUtility).GetMethod(nameof(System.Net.WebUtility.UrlEncode),
BindingFlags.Static | BindingFlags.NonPublic,
null,
new[]
{
typeof(byte[]),
typeof(int),
typeof(int)
},
null);
正在寻找this line确切但是 .NetFramework4.7 ,并且CoreFx中也找不到System.Net.WebUtility
来源。
答案 0 :(得分:2)
代码实际上是要求System.Net.WebUtility
中名为UrlEncode
的
static
public
(如您的链接所示,实际上是private
)byte[]
,int
,int
。 But .NET Standard 2.0
doesn't define any such method。因此,符合.NET标准2.0的实现 - 包括.NET Core 2.0 - 可以不自由地实现它。而这正是corefx所做的。 System.Net.WebUtilities的corefx实现中没有这样的方法:https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs
您是否考虑过使用UrlEncodeToBytes(byte[], int, int)
?它存在于.NET Standard 2.0中,应该在.NET Framework 4.6.1和.NET Core 2.0中得到支持。