webForumDet fria alternativet

hur strukturera metoder?

1 svar · 398 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#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";
	}
}
emissionMedlem 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.

133 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)