Laden...

Probleme mit dem Serializer

Erstellt von christof.k vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.841 Views
C
christof.k Themenstarter:in
159 Beiträge seit 2005
vor 19 Jahren
Probleme mit dem Serializer

Hallo!

Ich habe eine ganz merkwürdige Erscheinung.
Ein Code der bisher einwandfrei lief, zeigt mir nun runtime Probleme.

Ich habe foldende struktur definiert:

public struct hash_file_list_tag
{
	public string file_name;
	public int hash_code;
			
	public hash_file_list_tag(string file_name, int hash_code)
	{
		this.file_name = file_name;
		this.hash_code = hash_code;
	}
}

mein Code greif dann folgendermaßen darauf zu;

public void test()
		{
			hash_file_list_tag[] mylist = new Cc_InterfaceClass.hash_file_list_tag[5];
			mylist[0].file_name = "test1";
			mylist[0].hash_code = 1245;
			mylist[1].file_name = "test2";
			mylist[1].hash_code = 124;
			mylist[2].file_name = "test3";
			mylist[2].hash_code = 12;
			mylist[3].file_name = "test4";
			mylist[3].hash_code = 1;
			mylist[4].file_name = "test5";
			mylist[4].hash_code = 0132;
			StoreHashList(mylist, "v:\\test.xml");
			hash_file_list_tag[] mylist2 = new Cc_InterfaceClass.hash_file_list_tag[5];
			
			mylist2 = LoadHashList("v:\\test.xml");
			for (int i = 0; i < 5; i++)
			Console.WriteLine("{0}, {1}", mylist2[i].file_name, mylist2[i].hash_code);
			
		}
	
	    public void StoreHashList(hash_file_list_tag[] ar, string pfad) 
	    {
	    	XmlSerializer xmlSer = new XmlSerializer(typeof(hash_file_list_tag[]));
	        FileStream stream = new FileStream(pfad, FileMode.Create);
	        xmlSer.Serialize(stream, ar);
	        stream.Close();
	    }
	
	    public hash_file_list_tag[] LoadHashList(string pfad) 
	    {
	    	XmlSerializer xmlSer = new XmlSerializer(typeof(hash_file_list_tag[]));
	        FileStream stream = new FileStream(pfad, FileMode.Open);
	        hash_file_list_tag[] ar = (hash_file_list_tag[])xmlSer.Deserialize(stream);
	        stream.Close();
	        return ar;
	    }
}

Die Fehlermeldung lautet

Unhandled Exception: System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS1514: { expected
error CS1001: Identifier expected
error CS1031: Type expected
error CS1519: Invalid token '{' in class, struct, or interface member declaration
error CS1514: { expected
error CS1001: Identifier expected
error CS1031: Type expected
error CS1519: Invalid token '{' in class, struct, or interface member declaration

   at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, CompilerParameters parameters, Evidence evidence)
   at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, Compile
able assemblies)
   at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
   at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type)
   at Serializer.Access_Array.StoreHashList(hash_file_list_tag[] ar, String pfad) in d:\Christof\SharpDevelop Projects\PVCS_Build\Serializer.cs:line 50
   at Compiler.Compilation.Start() in d:\Christof\SharpDevelop Projects\PVCS_Build\Compiler.cs:line 146


Dies ist aus meinem Code herauskopiert, die Meldung bezieht sich auf die Zeile

XmlSerializer xmlSer = new XmlSerializer(typeof(hash_file_list_tag[]));

von oben,

Das komische ist, dass plötzlich auch eine alte Version meines Programmes, die immer lief, auch dieses Problem hat.
Ich kann das nicht nachvollziehen. Kann sich etwas im .net Framework aufhängen oder so?

Vielen Dank
Christof

C
christof.k Themenstarter:in
159 Beiträge seit 2005
vor 19 Jahren

Das Problem kann auf den Hotfix KB 886904 zurückgeführt werden. Leider wird der bei uns durch den Server automatisch installiert.

Jetzt stehe ich da.....

Christof