Ich habe zwei Funktion, dass man eine FormCollection
empfängt und eine andere erhält eine HttpRequest
wie folgt aus:Konvertieren Formcollection && Httprequest zu Hashtable
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));
}
Wie Sie sehen können, die sowohl die Funktionen tun genau das gleiche. Der einzige Unterschied ist der Typ des Wertes, den jeder erhält.
Beide Funktionen funktionieren. Was ich will, ist zu vermeiden, in beiden Funktionen Code wiederholt zu haben.
Es gibt eine Möglichkeit, dass ich dies zusammenfassen kann, um in einem zu funktionieren? Wie zum Beispiel konvertieren Sie die FormCollection
und in eine Hashtable
und die verwenden?
vermeiden, was haben Sie versucht? was hat nicht funktioniert? –
@TheBeardedLlama Beide Funktionen funktionieren. Was ich will, ist zu vermeiden, wiederholten Code in beiden Funktionen. –
Ich glaube nicht, dass Sie den 'HttpRequest' Indexer überhaupt verwenden sollten. Es greift auf die Abfragezeichenfolge, das Formular, die Cookies * und * Server-Variablen gleichzeitig zu, was Sie nie tun sollten. –