* SoapReader.cs:
* SoapWriter.cs: Use InternalRemotingServices.GetCachedSoapAttribute to
get the name of the fields being serialized. Fixed some warnings.
svn path=/trunk/mcs/; revision=44260
+2005-05-09 Lluis Sanchez Gual <lluis@novell.com>
+
+ * SoapReader.cs:
+ * SoapWriter.cs: Use InternalRemotingServices.GetCachedSoapAttribute to
+ get the name of the fields being serialized. Fixed some warnings.
+
2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
* SoapTypeMapper.cs: Added missing maps for primitive types and
2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
* SoapTypeMapper.cs: Added missing maps for primitive types and
using System.Runtime.Remoting;\r
using System.Runtime.Serialization;\r
using System.Runtime.Remoting.Messaging;\r
using System.Runtime.Remoting;\r
using System.Runtime.Serialization;\r
using System.Runtime.Remoting.Messaging;\r
+using System.Runtime.Remoting.Metadata;\r
\r
namespace System.Runtime.Serialization.Formatters.Soap {\r
internal sealed class SoapReader {\r
\r
namespace System.Runtime.Serialization.Formatters.Soap {\r
internal sealed class SoapReader {\r
tm.MemberInfos = FormatterServices.GetSerializableMembers (type, _context);\r
\r
tm.Indices = new Hashtable();\r
tm.MemberInfos = FormatterServices.GetSerializableMembers (type, _context);\r
\r
tm.Indices = new Hashtable();\r
- for(int i = 0; i < tm.MemberInfos.Length; i++) \r
- tm.Indices.Add (tm.MemberInfos[i].Name, i);\r
+ for(int i = 0; i < tm.MemberInfos.Length; i++) {\r
+ SoapFieldAttribute at = (SoapFieldAttribute) InternalRemotingServices.GetCachedSoapAttribute (tm.MemberInfos[i]);\r
+ tm.Indices [XmlConvert.EncodeLocalName (at.XmlElementName)] = i;\r
+ }\r
\r
_fieldIndices[type] = tm;\r
return tm;\r
\r
_fieldIndices[type] = tm;\r
return tm;\r
using System.Reflection;\r
using System.Collections;\r
using System.Runtime.Remoting;\r
using System.Reflection;\r
using System.Collections;\r
using System.Runtime.Remoting;\r
+using System.Runtime.Remoting.Metadata;\r
using System.Runtime.Remoting.Messaging;\r
using System.Runtime.Serialization;\r
using System.Runtime.Serialization.Formatters;\r
using System.Runtime.Remoting.Messaging;\r
using System.Runtime.Serialization;\r
using System.Runtime.Serialization.Formatters;\r
\r
private XmlTextWriter _xmlWriter;\r
private Queue _objectQueue = new Queue();\r
\r
private XmlTextWriter _xmlWriter;\r
private Queue _objectQueue = new Queue();\r
- private Hashtable _prefixTable = new Hashtable();\r
private Hashtable _objectToIdTable = new Hashtable();\r
private ISurrogateSelector _surrogateSelector;\r
private SoapTypeMapper _mapper;\r
private StreamingContext _context;\r
private Hashtable _objectToIdTable = new Hashtable();\r
private ISurrogateSelector _surrogateSelector;\r
private SoapTypeMapper _mapper;\r
private StreamingContext _context;\r
- private ISoapMessage _soapMessage = null;\r
private ObjectIDGenerator idGen = new ObjectIDGenerator();\r
private FormatterAssemblyStyle _assemblyFormat = FormatterAssemblyStyle.Full;\r
private FormatterTypeStyle _typeFormat = FormatterTypeStyle.TypesWhenNeeded;\r
private ObjectIDGenerator idGen = new ObjectIDGenerator();\r
private FormatterAssemblyStyle _assemblyFormat = FormatterAssemblyStyle.Full;\r
private FormatterTypeStyle _typeFormat = FormatterTypeStyle.TypesWhenNeeded;\r
_xmlWriter.Formatting = Formatting.Indented;\r
_surrogateSelector = selector;\r
_context = context;\r
_xmlWriter.Formatting = Formatting.Indented;\r
_surrogateSelector = selector;\r
_context = context;\r
- _soapMessage = soapMessage;\r
Id(idGen.GetId(message, out firstTime));\r
\r
string[] paramNames = message.ParamNames;\r
Id(idGen.GetId(message, out firstTime));\r
\r
string[] paramNames = message.ParamNames;\r
- Type[] paramTypes = message.ParamTypes;\r
object[] paramValues = message.ParamValues;\r
int length = (paramNames != null)?paramNames.Length:0;\r
for(int i = 0; i < length; i++) \r
object[] paramValues = message.ParamValues;\r
int length = (paramNames != null)?paramNames.Length:0;\r
for(int i = 0; i < length; i++) \r
- MemberInfo[] memberInfos = \r
- FormatterServices.GetSerializableMembers(currentType, _context);\r
- object[] objectData =\r
- FormatterServices.GetObjectData(currentObject, memberInfos);\r
-// Array.Sort(memberInfos, objectData, this);\r
+ MemberInfo[] memberInfos = FormatterServices.GetSerializableMembers(currentType, _context);\r
+ object[] objectData = FormatterServices.GetObjectData(currentObject, memberInfos);\r
+ \r
for(int i = 0; i < memberInfos.Length; i++) \r
{\r
for(int i = 0; i < memberInfos.Length; i++) \r
{\r
- FieldInfo fieldInfo = memberInfos[i] as FieldInfo;\r
-// bool specifyEncoding = false;\r
-// if(objectData[i] != null)\r
-// specifyEncoding = (objectData[i].GetType() != fieldInfo.FieldType);\r
- _xmlWriter.WriteStartElement(fieldInfo.Name);\r
+ FieldInfo fieldInfo = (FieldInfo) memberInfos[i];\r
+ SoapFieldAttribute at = (SoapFieldAttribute) InternalRemotingServices.GetCachedSoapAttribute (fieldInfo);\r
+ _xmlWriter.WriteStartElement (XmlConvert.EncodeLocalName (at.XmlElementName));\r
SerializeComponent(\r
objectData[i], \r
IsEncodingNeeded(objectData[i], fieldInfo.FieldType));\r
SerializeComponent(\r
objectData[i], \r
IsEncodingNeeded(objectData[i], fieldInfo.FieldType));\r