"Die angegebene Umwandlung ist ungültig."

Kleine Frage:
ich habe eine cs Datei einer älteren Version eingebaut und bekomme diese System.InvalidCastException:

<UserState myState = Context.Items["UserState"];
UserState myState = (UserState) Context.Items["UserState"];
if (myState == null) > usw.

Wie kann ich die implizite Konvertierung des Typs objekt in meine Klassenvariable anders formulieren, damit es läuft?

Danke
 
Hi!

Falls Du die Klasse UserState selbst geschrieben hast, kannst Du einen impliziten cast-operator überladen:

Code:
public static implicit operator UserState(Object o)
{
	...
}

mfg.
FX
 
Danke für den Tipp, ich finde nur seltsam, dass das Framework 1.0 den Code ohne Probleme kompiliert hat und ich mit der Version 1.1 Probleme bekomme (Code ist aus dem Quickstarts-Beispiel für ein ASP Portal, was ich versucht habe unter Visual Studio .NET 2003 zum Laufen zu bekommen!)
Gruß
Kerstin
 
Das klappt so glaube ich nicht...

Leider schmeißt der Kompiler die Fehlermeldung:

'Personalization.UserState.implicit operator Personalization.UserState(Object)': benutzerdefinierte Konvertierung zu/von der Schnittstelle

wenn ich in der Klasse diese Konvertierung implementiere:
public static implicit operator UserState(object o )
{
return o.value;

}
Hat jemand das Portal vielleicht schon mal unter VS 2003 zum Laufen bekommen?
 

Neue Beiträge

Zurück