I am getting unhandled InvalidOperationException at runtime for statemen
mySerializer.Serialize(writer, myGroup)
at line no. 6
Could anybody please helpout in excecuting this code
//<Snippet1
import System.*
import System.IO.*
import System.Xml.*
import System.Xml.Serialization.*
public class Grou
public String groupName
public GroupType groupType
} //Grou
public class GroupTyp
// Use the SoapEnumAttribute to instruct the XmlSerialize
// to generate Small and Large instead of A and B
public int member
public GroupType(
member = 0
} //GroupTyp
public GroupType(int n
member = n
} //GroupTyp
/** @attribute SoapEnum("Small"
*
public static int a = 0
/** @attribute SoapEnum("Large"
*
public static int B = 1
} //GroupTyp
public class Ru
public static void main(String[] args
Run test = new Run()
test.SerializeObject("SoapEnum.xml")
test.SerializeOverride("SoapOverride.xml")
Console.WriteLine("Fininished writing two files")
} //mai
private void SerializeObject(String filename
// Create an instance of the XmlSerializer Class
XmlTypeMapping mapp = (new SoapReflectionImporter())
ImportTypeMapping(Group.class.ToType())
XmlSerializer mySerializer = new XmlSerializer(mapp)
// Writing the file requires a TextWriter
TextWriter writer = new StreamWriter(filename)
// Create an instance of the Class that will be serialized
Group myGroup = new Group()
// Set the object properties
myGroup.groupName = ".NET"
myGroup.groupType = new GroupType(GroupType.a)
// Serialize the Class, and close the TextWriter
mySerializer.Serialize(writer, myGroup)
writer.Close()
} //SerializeObjec
private void SerializeOverride(String fileName
SoapAttributeOverrides soapOver = new SoapAttributeOverrides()
SoapAttributes SoapAtts = new SoapAttributes()
// Add a SoapEnumAttribute for the GroupType.a enumerator.
// Instead of 'A' it will be "West"
SoapEnumAttribute soapEnum = new SoapEnumAttribute("West")
// Override the "A" enumerator
SoapAtts.set_SoapEnum(soapEnum)
soapOver.Add(GroupType.class.ToType(), "A", SoapAtts)
// Add another SoapEnumAttribute for the GroupType.B enumerator
// Instead of //B// it will be "East"
SoapAtts = new SoapAttributes()
soapEnum = new SoapEnumAttribute()
soapEnum.set_Name("East")
SoapAtts.set_SoapEnum(soapEnum)
soapOver.Add(GroupType.class.ToType(), "B", SoapAtts)
// Create an XmlSerializer used for overriding
XmlTypeMapping map = (new SoapReflectionImporter(soapOver))
ImportTypeMapping(Group.class.ToType())
XmlSerializer ser = new XmlSerializer(map)
Group myGroup = new Group()
myGroup.groupName = ".NET"
myGroup.groupType = new GroupType(GroupType.B)
// Writing the file requires a TextWriter
TextWriter writer = new StreamWriter(fileName)
ser.Serialize(writer, myGroup)
writer.Close()
} //SerializeOverrid
} //Ru
//</Snippet1
Lars-Inge T?nnessen - 17 May 2004 13:28 GMT
Sorry, I did not see your post until now. Please try this one.
Please see // HERE_____
import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Serialization.*;
public class Group
{
public String groupName;
public GroupType groupType;
} //Group
public class GroupType
{
public int member;
public GroupType()
{
member = 0;
} //GroupType
public GroupType(int n)
{
member = n;
} //GroupType
/** @attribute SoapEnum("Small") */
public static int a = 0;
/** @attribute SoapEnum("Large") */
public static int B = 1;
} //GroupType
public class Run
{
public static void main(String[] args)
{
Run test = new Run();
test.SerializeObject("SoapEnum.xml");
test.SerializeOverride("SoapOverride.xml");
Console.WriteLine("Fininished writing two files");
} //main
private void SerializeObject(String filename)
{
TextWriter writer = new StreamWriter(filename);
Group myGroup = new Group();
myGroup.groupName = ".NET";
myGroup.groupType = new GroupType(GroupType.a);
// HERE_________________
XmlSerializer mySerializer = new XmlSerializer( myGroup.GetType() );
// ______________________
mySerializer.Serialize(writer, myGroup);
writer.Close();
} //SerializeObject
private void SerializeOverride(String fileName)
{
SoapAttributeOverrides soapOver = new SoapAttributeOverrides();
SoapAttributes SoapAtts = new SoapAttributes();
SoapEnumAttribute soapEnum = new SoapEnumAttribute("West");
SoapAtts.set_SoapEnum(soapEnum);
soapOver.Add(GroupType.class.ToType(), "A", SoapAtts);
SoapAtts = new SoapAttributes();
soapEnum = new SoapEnumAttribute();
soapEnum.set_Name("East");
SoapAtts.set_SoapEnum(soapEnum);
soapOver.Add(GroupType.class.ToType(), "B", SoapAtts);
Group myGroup = new Group();
myGroup.groupName = ".NET";
myGroup.groupType = new GroupType(GroupType.B);
TextWriter writer = new StreamWriter(fileName);
// HERE_____________________
XmlSerializer ser = new XmlSerializer( myGroup.GetType() );
// __________________________
ser.Serialize(writer, myGroup);
writer.Close();
} //SerializeOverride
} //Run
Regards,
Lars-Inge T?nnessen
www.larsinge.com