_addInternalMethod这个引用永远为空,原因就是.net40里WebHeaderCollection这里根本没有AddInternal这个函数,我用的是阿里云日志上报系统,SLSSDK40,C#版本,WIN10控制台程序
internal static void AddInternal(this WebHeaderCollection headers, string key, string value) { if (isMonoPlatform == null) { isMonoPlatform = monoPlatforms.Contains(System.Environment.OSVersion.Platform); }
// HTTP headers should be encoded to iso-8859-1,
// however it will be encoded automatically by HttpWebRequest in mono.
if (isMonoPlatform == false)
// Encode headers for win platforms.
value = HttpUtils.ReEncode(
value,
HttpUtils.UTF8Charset,
HttpUtils.Iso88591Charset);
if (_addInternalMethod == null)
{
// Specify the internal method name for adding headers
// mono: AddWithoutValidate
// win: AddInternal
string internalMethodName = (isMonoPlatform == true) ? "AddWithoutValidate" : "AddInternal";
//string internalMethodName = "AddWithoutValidate";
MethodInfo mi = typeof(WebHeaderCollection).GetMethod(
internalMethodName,
BindingFlags.NonPublic | BindingFlags.Instance,
null,
new Type[] { typeof(string), typeof(string) },
null);
_addInternalMethod = mi;
}
_addInternalMethod.Invoke(headers, new object[] { key, value });
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。