Hallo,<br>
ich habe für mich sehr merkwürdiges Problem.<br>
Erstmal der code:<br>
<pre>
<font face="Verdana" size="1" color="#000000">[Serializable]
public class TSerProperty
{
internal string FTown;
internal string FStreet;
internal int FNumber;
public TSerProperty(string aTown, string aStreet, int aNumber)
{
this.FTown = aTown;
this.FStreet = aStreet;
this.FNumber = aNumber;
}
public string Town
{
get {return FTown;}
set {FTown=value;}
}
public string Street
{
get {return FStreet;}
set {FStreet=value;}
}
public int Number
{
get {return FNumber;}
set {FNumber=value;}
}
}
[Serializable]
public class TSer
{
internal string FFirstname;
internal string FLastname;
internal int FAge;
public TSer()
{
<b>TSerProperty SerProp = new TSerProperty("0","0",0);
</b> }
public TSerProperty SerProp
public string Firstname
{
get {return FFirstname;}
set {FFirstname=value;}
}
public string Lastname
{
get {return FLastname;}
set {FLastname=value;}
}
public int Age
{
get {return FAge;}
set {FAge=value;}
}
}</font>
</pre>
Die Objekte selber haben eigentlich keine Bedeutung (brauche ich nur um das [Serializable] Attribute zu testen)<br>
In TSer habe eine Eigenschaft vom Type TSerProperty deklariert. im constructor von TSer wird auch eine Instanz <br>
erzeugt. Aber jetzt kommt's:<br>
<pre>
private void btnCreate_Click(object sender, System.EventArgs e)
{
TSer SerObj = new TSer();
SerObj.Firstname="Paul";
SerObj.Lastname="Schmitt";
SerObj.Age=56;
SerObj.SerProp.Town="München";
SerObj.SerProp.Street="Am Markt";
SerObj.SerProp.Number=1;
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(FFilestream, SerObj);
}
</pre>
Die direkte Zuweisung SerObj.SerProp.Town="München"; erzeugt einen Fehler.<br>
<b>Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in Serial1.exe aufgetreten<br>
Zusätzliche Informationen: Der Wert 'null' wurde gefunden, als eine Objektinstanz erforderlich war.</b><br>
Erst mit SerObj.SerProp = new TSerProperty("München","Am Markt",1); lassen sich die<br>
Felder von SerObj.SerProp setzen. Warum erhalte ich den Fehler, obwohl im constructor von<br>
TSer SerObj erzeugt wird ?<br>
Jens Schumann<br>
ich habe für mich sehr merkwürdiges Problem.<br>
Erstmal der code:<br>
<pre>
<font face="Verdana" size="1" color="#000000">[Serializable]
public class TSerProperty
{
internal string FTown;
internal string FStreet;
internal int FNumber;
public TSerProperty(string aTown, string aStreet, int aNumber)
{
this.FTown = aTown;
this.FStreet = aStreet;
this.FNumber = aNumber;
}
public string Town
{
get {return FTown;}
set {FTown=value;}
}
public string Street
{
get {return FStreet;}
set {FStreet=value;}
}
public int Number
{
get {return FNumber;}
set {FNumber=value;}
}
}
[Serializable]
public class TSer
{
internal string FFirstname;
internal string FLastname;
internal int FAge;
public TSer()
{
<b>TSerProperty SerProp = new TSerProperty("0","0",0);
</b> }
public TSerProperty SerProp
public string Firstname
{
get {return FFirstname;}
set {FFirstname=value;}
}
public string Lastname
{
get {return FLastname;}
set {FLastname=value;}
}
public int Age
{
get {return FAge;}
set {FAge=value;}
}
}</font>
</pre>
Die Objekte selber haben eigentlich keine Bedeutung (brauche ich nur um das [Serializable] Attribute zu testen)<br>
In TSer habe eine Eigenschaft vom Type TSerProperty deklariert. im constructor von TSer wird auch eine Instanz <br>
erzeugt. Aber jetzt kommt's:<br>
<pre>
private void btnCreate_Click(object sender, System.EventArgs e)
{
TSer SerObj = new TSer();
SerObj.Firstname="Paul";
SerObj.Lastname="Schmitt";
SerObj.Age=56;
SerObj.SerProp.Town="München";
SerObj.SerProp.Street="Am Markt";
SerObj.SerProp.Number=1;
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(FFilestream, SerObj);
}
</pre>
Die direkte Zuweisung SerObj.SerProp.Town="München"; erzeugt einen Fehler.<br>
<b>Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in Serial1.exe aufgetreten<br>
Zusätzliche Informationen: Der Wert 'null' wurde gefunden, als eine Objektinstanz erforderlich war.</b><br>
Erst mit SerObj.SerProp = new TSerProperty("München","Am Markt",1); lassen sich die<br>
Felder von SerObj.SerProp setzen. Warum erhalte ich den Fehler, obwohl im constructor von<br>
TSer SerObj erzeugt wird ?<br>
Jens Schumann<br>
Comment