gpt4 book ai didi

c# - 将 FormCollection && HttpRequest 转换为哈希表

转载 作者:行者123 更新时间:2023-11-30 16:42:41 26 4
gpt4 key购买 nike

我有两个函数,一个接收 FormCollection,另一个接收 HttpRequest,如下所示:

public void SetUrlParameters(FormCollection request, string controllerName = "")
{
string sessionID = ConvertToString(request["sessionID"]);
string idSession = ConvertToString(request["idSession"]);
string sessionid = ConvertToString(request["sessionid"]);

if (idSession.Length > 0)
this.sessionID = idSession;
else if (sessionid.Length > 0)
this.sessionID = sessionid;
else
this.sessionID = sessionID;

}

private void SetUrlParameters(HttpRequest request, string controllerName = "")
{

string sessionID = ConvertToString(request["sessionID"]);
string idSession = ConvertToString(request["idSession"]);
string sessionid = ConvertToString(request["sessionid"]);

if (idSession.Length > 0)
this.sessionID = idSession;
else if (sessionid.Length > 0)
this.sessionID = sessionid;
else
this.sessionID = sessionID;

}

private string ConvertToString(object obj, string defaultValue = "")
{
if (obj == null) return defaultValue;

return Convert.ToString(filterSameVariablesValue(obj));
}

如您所见,这两个函数的作用完全相同。唯一的区别是每个接收到的值的类型。

两个函数都在工作。我想要的是避免在两个函数中重复代码。

有什么方法可以将其折叠成一个功能?例如将 FormCollectionHttpRequest 转换为 Hashtable 并使用它?

最佳答案

您可以简单地期待一个(几乎)对这两种类型通用的 NameValueCollection 参数:

private void SetUrlParameters(NameValueCollection data, string controllerName = "")
{
string sessionID = ConvertToString(data["sessionID"]);
string idSession = ConvertToString(data["idSession"]);
string sessionid = ConvertToString(data["sessionid"]);

if (idSession.Length > 0)
this.sessionID = idSession;
else if (sessionid.Length > 0)
this.sessionID = sessionid;
else
this.sessionID = sessionID;
}

HttpRequest 的用法:

SetUrlParameters(request.Params);

FormCollection 的用法:

SetUrlParameters(formCollection);

参见 MSDN

关于c# - 将 FormCollection && HttpRequest 转换为哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com