Hey.
Jeg har nogle gamle ASMX webservices i .NET som volder lidt problemer.
Jeg har en struct som defineres sådan her:
- [Serializable()]
- public struct MyStruct : IMyType, IComparable
- {
- ** Snip en masse kode **
- }
og så har jeg i min webservice denne metode:
- [WebMethod]
- public MyStruct GetMyStruct(string username)
- {
- ** Snip en masse uinteressant kode **
- return minStruct;
- }
Mit problem er, at metoden GetMyStruct returnerer ingenting overhovedet. Men, hvis jeg ændrer metoden i webservicen til at returnere en simpel streng:
- [WebMethod]
- public String GetMyStruct(string username)
- {
- ** Snip en masse uinteressant kode **
- return minStruct.ToString();
- }
Så returnerer den fint værdien.
Skal man gøre noget specielt, når man bruger [Serializable()] på en struct? Jeg har den også defineret på klasser, hvor det virker fint.
Og hvordan virker [Serializable()] reelt (den kommer jo fra System.SerializableAttribute klassen? Er der en metode man kan override i sin struct, for at Serialisere anderledes?
Det skal lige siges, at det ikke er muligt for mig at ændre det til at bruge ISerializable interfacet, da det vil påvirke alt for mange steder.
Håber nogen kan guide mig lidt på vej til, hvorfor den ikke returnerer noget.