Hej! För att få persistens i dina objekt när du programmerar för webben måste du göra dina objekt "serialiserbara". Serialisering "under huven" är ganska knepigt. Dess bättre tror jag det är ganska enkelt att fixa för dig i detta fall. Du sätter ett attribut <Serializable> på din klass. Hej Andres! Hmmm.. Har du ett C#- och ett VB-projekt? Ligger dom i olika webbapplikationer? I så fall lever inte sessionen över applikationens gränser. Måste ha hela bilden klar för mig om jag ska kunna ha fler synpunkter. Nej jag har bara renodlade C# projekt. Men en sida som är den sidan som jag använder för att skicka data till betaltjänsten är en VB sida. Allt annat är C# Vad menar du med att du inte får ut något värde? Vad får du för felmeddelande?Skicka med obkjekt...
Mitt problem är att jag inte får ut värden ur mitt medskickade objekt.
Tanken är att man gör ett urval och sedan lagrar jag detta i en class som jag sedan sparar som ett sessions objekt och vill kunna ta fram på mina ASP.NET sidor.
<code>
// Skapar objektet för att spara undan selecteringen
SenMailLogic.CSendSingelMail obj = new SenMailLogic.CSendSingelMail();
// Urvalet
obj.RegionName = cboRegion.SelectedItem.Text; //Region
obj.PlaceName = cboCity.SelectedItem.Text; //Stad
obj.BrandName = cboBranch.SelectedItem.Text; //Branch
Session["COffer"] = obj;
</code>
Detta görs med C# kod.
Nu vill jag på en anna sida läsa ut data ur objektet. Denna sida hanterar VB kod( lite klurit, men så måste det vara)
<code>
Dim obj As SenMailLogic.CSendSingelMail = CType(Session("COffer"),SenMailLogic.CSendSingelMail)
RegionName = obj.RegionName.ToString()
</code>
men jag får inte ut något värde ur objektet.
Så frågan är ju, Vad gör jag för fel?
/tyronneSv: Skicka med obkjekt...
<code>
<Serializable>
Public Class CSendSingelMail
//class implementation
End Class
</code>Sv:Skicka med obkjekt...
Jag har testat det du sa men det hjälpte inte.
I mitt system så har jag ett huvudprojekt där alla sidorna ligger. Logiken däremot ligger i ett class Library dvs en dll. Och flödet är så att jag gör ett urval på en hemsida. Objektet som jag med koden
<code>
// Skapar objektet för att spara undan selecteringen
SenMailLogic.CSendMultipleMail obj = new SenMailLogic.CSendMultipleMail();
Session["COffer"] = obj;
</code>
ligger alltså i DLL:en. Anledningen till att jag gör så här är ett tips från Ola L. att jag skall skapa objektet och spara det i en session så att jag kan jobba över alla sidorna med den.
När urvalet är gjort skall användaren komma till en betaltjänst som är kodad med VB.NET. och i min sessions-klass har jag värden som skall med till betaltjänsten och detta försöker jag få ut med koden
<code>
Dim obj As CSendMultipleMail = Session("COffer") ' Har byggt om detta mot exemplet ovan
userid = obj.OfferID.ToString()
</code>
Problemet är att jag inte får ut något värde ur sessionen. Denna sidan kör koden direkt på sidan och inte i CodeBehinde.
har du fler tips?
/TyronneSv: Skicka med obkjekt...
Sv:Skicka med obkjekt...
/TyronneSv: Skicka med obkjekt...