void WriteAnyElementContent(XmlTypeMapMemberAnyElement member, object memberValue)
        {
            if (member.TypeData.Type == typeof(XmlElement))
            {
                memberValue = new object[] { memberValue };
            }

            Array elems = (Array)memberValue;

            foreach (XmlNode elem in elems)
            {
                if (elem is XmlElement)
                {
                    if (member.IsElementDefined(elem.Name, elem.NamespaceURI))
                    {
                        if (_format == SerializationFormat.Literal)
                        {
                            WriteElementLiteral(elem, "", "", false, true);
                        }
                        else
                        {
                            WriteElementEncoded(elem, "", "", false, true);
                        }
                    }
                    else
                    {
                        throw CreateUnknownAnyElementException(elem.Name, elem.NamespaceURI);
                    }
                }
                else
                {
                    elem.WriteTo(Writer);
                }
            }
        }
예제 #2
0
        private void WriteAnyElementContent(XmlTypeMapMemberAnyElement member, object memberValue)
        {
            if (member.TypeData.Type == typeof(XmlElement))
            {
                memberValue = new object[]
                {
                    memberValue
                };
            }
            Array array = (Array)memberValue;

            foreach (object obj in array)
            {
                XmlNode xmlNode = (XmlNode)obj;
                if (xmlNode is XmlElement)
                {
                    if (!member.IsElementDefined(xmlNode.Name, xmlNode.NamespaceURI))
                    {
                        throw base.CreateUnknownAnyElementException(xmlNode.Name, xmlNode.NamespaceURI);
                    }
                    if (this._format == SerializationFormat.Literal)
                    {
                        base.WriteElementLiteral(xmlNode, string.Empty, string.Empty, false, true);
                    }
                    else
                    {
                        base.WriteElementEncoded(xmlNode, string.Empty, string.Empty, false, true);
                    }
                }
                else
                {
                    xmlNode.WriteTo(base.Writer);
                }
            }
        }
        void WriteAnyElementContent(XmlTypeMapMemberAnyElement member, object memberValue)
        {
#if MOONLIGHT
            throw new NotSupportedException();
#else
            //
            // XmlAnyElement can be of XmlElement or XmlNode type
            //
            if (member.TypeData.Type == typeof(XmlElement) || member.TypeData.Type == typeof(XmlNode))
            {
                memberValue = new object[] { memberValue };
            }

            Array elems = (Array)memberValue;
            foreach (var elem_ in elems)
            {
                XmlNode elem = elem_ as XmlNode;
                if (elem == null)
                {
                    throw new InvalidOperationException(String.Format("XmlAnyElementAttribute can only be applied to members of type XmlElement, XmlElement[] or XmlNode[]. The target object is {0}", elem_ != null ? elem_.GetType() : null));
                }
                if (elem is XmlElement)
                {
                    if (member.IsElementDefined(elem.Name, elem.NamespaceURI))
                    {
                        if (_format == SerializationFormat.Literal)
                        {
                            WriteElementLiteral(elem, "", "", false, true);
                        }
                        else
                        {
                            WriteElementEncoded(elem, "", "", false, true);
                        }
                    }
                    else
                    {
                        throw CreateUnknownAnyElementException(elem.Name, elem.NamespaceURI);
                    }
                }
                else
                {
                    elem.WriteTo(Writer);
                }
            }
#endif
        }
		void WriteAnyElementContent (XmlTypeMapMemberAnyElement member, object memberValue)
		{
			if (member.TypeData.Type == typeof (XmlElement)) {
				memberValue = new object[] { memberValue };
			}

			Array elems = (Array) memberValue;
			foreach (var elem_ in elems)
			{
				XmlNode elem = elem_ as XmlNode;
				if (elem == null)
					throw new InvalidOperationException (String.Format ("XmlAnyElementAttribute can only be applied to members of type XmlElement, XmlElement[] or XmlNode[]. The target object is {0}", elem_ != null ? elem_.GetType () : null));
				if (elem is XmlElement) 
				{
					if (member.IsElementDefined (elem.Name, elem.NamespaceURI))
					{
						if (_format == SerializationFormat.Literal) WriteElementLiteral (elem, "", "", false, true);
						else WriteElementEncoded (elem, "", "", false, true);
					}
					else
						throw CreateUnknownAnyElementException (elem.Name, elem.NamespaceURI);
				}
				else
					elem.WriteTo (Writer);
			}
		}
		void WriteAnyElementContent (XmlTypeMapMemberAnyElement member, object memberValue)
		{
			if (member.TypeData.Type == typeof (XmlElement)) {
				memberValue = new object[] { memberValue };
			}

			Array elems = (Array) memberValue;
			foreach (XmlNode elem in elems)
			{
				if (elem is XmlElement) 
				{
					if (member.IsElementDefined (elem.Name, elem.NamespaceURI))
					{
						if (_format == SerializationFormat.Literal) WriteElementLiteral (elem, "", "", false, true);
						else WriteElementEncoded (elem, "", "", false, true);
					}
					else
						throw CreateUnknownAnyElementException (elem.Name, elem.NamespaceURI);
				}
				else
					elem.WriteTo (Writer);
			}
		}