webForumDet fria alternativet
Logga in / Bli medlem

hur strukturera metoder?

.NET

1 svar · 398 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Trådstart#1

rookien är i farten igen! :)
har denna kod (ej fungerande, säkert felskriven både här å där):
fråga:
hur får jag in metoden Open i Auth?
det jag försöker göra är att köra igång en instans av WebClient, sen vill jag göra postningen av xml-koden och sedan kasta WebClient-instansen.
varför jag har dessa steg är för att efter Auth kommer det att köras flera metoder innan WebClient-instansen ska kastas.

public WebClient Open()
{
	try
	{
		WebClient webClient = new WebClient();
		return webClient;
	}

	catch
	{
		return null;
	}

}
		

public String Auth()
{

	try
	{
		string PostBody = @"<clickAPI><auth><api_id>" + apiId +
		"</api_id><user>" + user +"</user><password>" + password +
		"</password></auth></clickAPI>";

		//WebClient webClient = new WebClient();
	
		NameValueCollection nameValueCollection = new NameValueCollection();
		nameValueCollection.Add("data",PostBody);

		byte[] responseArray = [b]"här ska WebClient-instansen finnas"[/b].UploadValues(url,"POST",nameValueCollection); 
		
		XmlDocument xml = new XmlDocument(); 
		xml.LoadXml(Encoding.ASCII.GetString(responseArray));
		string MsgId;

		try
		{
			MsgId = xml.GetElementsByTagName("session_id")[0].InnerText.ToString();
		}
		catch
		{
			MsgId = "0";
		}

		return MsgId; 

	}
	catch
	{
		return "0";
	}
}
Medlem sedan dec. 19996 721 inlägg
#2

doggelito skrev:

varför jag har dessa steg är för att efter Auth kommer det att köras flera metoder innan WebClient-instansen ska kastas.

Av den anledningen så är det fel att låta Auth stå för instantieringen av din WebClient. Nu vet jag inte hur det ser ut runtomkring, men antingen skapar du en (privat) instans av WebClient på medlemsnivå (dvs. i den omgivande klassen) eller så skickar du in en WebClient som ett argument till Auth.

402 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
274 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)