2010-03-05 3 views
1

해제 공간이 후, 객체를 직렬화하기 위해 다음 코드를 사용하고 직렬화

 using (MemoryStream memoryStream = new MemoryStream()) 
     { 
      try 
      { 
       XmlWriterSettings writerSettings1 = new XmlWriterSettings(); 
       writerSettings1.CloseOutput = false; 
       writerSettings1.Encoding = System.Text.Encoding.UTF8; 
       writerSettings1.Indent = false; 
       writerSettings1.OmitXmlDeclaration = true; 
   XmlWriter writer1 = XmlWriter.Create(memoryStream, writerSettings1); 

       XmlSerializer xs1 = new XmlSerializer(obj.GetType(), string.Empty); 
       xs1.UnknownAttribute += new XmlAttributeEventHandler(xs1_UnknownAttribute); 
       xs1.UnknownElement += new XmlElementEventHandler(xs1_UnknownElement); 
       xs1.UnknownNode += new XmlNodeEventHandler(xs1_UnknownNode); 
       xs1.UnreferencedObject += new UnreferencedObjectEventHandler(xs1_UnreferencedObject); 
       xs1.Serialize(writer1, obj); 
       writer1.Close(); 

      } 
      catch (InvalidOperationException) 
      { 
       return null; 
      } 
      memoryStream.Position = 0; 
      serializeObjectDoc.Load(memoryStream); 

      return serializeObjectDoc.DocumentElement; 

속성 {특성, 이름 = "xmlns : xsi", Value = "http://www.w3.org/2001/XMLSchema-instance"} 개체 {System.Xml.XmlAttribute} {Attribute, Name = "xmlns : xsd", Value = "http : //www.w3.org/2001/XMLSchema "} object {System.Xml.XmlAttribute}

이 두 속성을 비활성화하는 방법을 알고 싶습니다.

+0

왜 이러한 속성을 "비활성화"하시겠습니까? 그들은 아무 것도 해를 입히지 않아야합니다. –

+0

그들은 가상의 진술입니다. 내 요소에 추가 속성을 원하지 않는 이유는 무엇입니까 .BCos 다른 구성 요소에 의해 읽은 XML에서 동일한 노드를 사용하고 있습니다. 나는 정확히 동일한 입력을 얻고 싶습니다. – Ravisha

+0

편집 중 롤백 중입니다. 번역. 수정이 필요하면 의견을 입력하십시오 – Ravisha

답변

3

XmlSerializerNamespaces 구조에 대해 알고 싶습니다. 간단한 (그러나 완전한) 예 :

using System.Xml.Serialization; 
using System; 
public class Foo 
{ 
    public string Bar { get; set; } 
    static void Main() 
    { 
     XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
     ns.Add("", ""); 
     XmlSerializer ser = new XmlSerializer(typeof(Foo)); 
     ser.Serialize(Console.Out, new Foo { Bar = "abc" }, ns); 
    } 
} 
+0

잘 작동합니다. 도움이 필요하십니까? – Ravisha

관련 문제