Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#如何将对象转换为XML_C#_Silverlight_Serialization_Xml Serialization_Silverlight 5.0 - Fatal编程技术网

c#如何将对象转换为XML

c#如何将对象转换为XML,c#,silverlight,serialization,xml-serialization,silverlight-5.0,C#,Silverlight,Serialization,Xml Serialization,Silverlight 5.0,我是c#和silverlight 5的初学者。我必须澄清silverlight高级开发人员的一个疑虑 我在c#中有一个对象,我必须获取对应于该对象的xml 有人能通过一个例子来解释如何做到这一点吗(任何简单的类及其对象的例子,然后获得xml) 我在google上读过一些文档,他们讨论了一些方法调用serialize(),可以这样做。我说得对吗?但是它是如何做到这一点的呢?有人可以通过c#类及其对象和xml来解释吗 这将是一个很大的帮助。 编辑: 我的尝试是: using System; usin

我是c#和silverlight 5的初学者。我必须澄清silverlight高级开发人员的一个疑虑

我在c#中有一个对象,我必须获取对应于该对象的xml

有人能通过一个例子来解释如何做到这一点吗(任何简单的类及其对象的例子,然后获得xml)

我在google上读过一些文档,他们讨论了一些方法调用
serialize()
,可以这样做。我说得对吗?但是它是如何做到这一点的呢?有人可以通过c#类及其对象和xml来解释吗

这将是一个很大的帮助。 编辑: 我的尝试是:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml.Serialization;
using System.IO;
using System.Text;

namespace SliderLastTry
{
    public static class Xml
    {
        public static string ToXml(this object objectToSerialize)
        {
            var mem = new MemoryStream();
            var ser = new XmlSerializer(objectToSerialize.GetType());
            ser.Serialize(mem, objectToSerialize);
            var utf8 = new UTF8Encoding();
            return utf8.GetString(mem.ToArray());
        }
    }
}
下一节课是:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SliderLastTry
{
    public  class Parameter 
    { 
        public  string Name {get; set; } 
    }  
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SliderLastTry
{
    public static class ControlClass
    {
        public static void Main()
        {
            Parameter pram = new Parameter();
            pram.ToXml();

        }

    }
}
包含类的主要函数是:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SliderLastTry
{
    public  class Parameter 
    { 
        public  string Name {get; set; } 
    }  
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SliderLastTry
{
    public static class ControlClass
    {
        public static void Main()
        {
            Parameter pram = new Parameter();
            pram.ToXml();

        }

    }
}
得到的误差为:

Error   1   'System.Text.Encoding.GetString(byte[])' is inaccessible due to its protection level 
对应于该行/

return utf8.GetString(mem.ToArray()); in Xml class. How toma the solution of it ?
我使用这个类

public static class Xml
{
    public static string ToXml(this object objectToSerialize)
    {
        var mem = new MemoryStream();
        var ser = new XmlSerializer(objectToSerialize.GetType());
        ser.Serialize(mem, objectToSerialize);
        var utf8 = new UTF8Encoding();
        return utf8.GetString(mem.GetBuffer(), 0, (int)mem.Length);
    }
}
使用此扩展方法,您可以

var xml = your_object.ToXml();

我已经看到了链接,但它们没有显示在类中获得的xml。你能给我一个类的例子,然后用你给那个类对象的逻辑得到这个类的xml吗?Thanks@user234839您可以看到最后一行,我在这里执行
stringxml=writer.ToString(),嗯。。。这就是我们获取序列化程序作为xml编写的
字符串的位置。基本上,序列化程序通常写入
或某种
*编写器
(在本例中是
文本编写器
)。我使用
StringWriter
将数据缓冲到
StringBuilder
中,然后通过
.ToString()
@user234839获取xml,如果您指的是类的示例和生成的xml:同样,请参见MSDN-这里有示例。查看我发布的
公共类MyClass
链接,谢谢你们。让我来实现它,我会回来把它标记为答案。@Marco我已经看到了链接,但是他们没有显示在类中获得的xml。你能给我一个类的例子,然后用你给那个类对象的逻辑得到这个类的xml吗?Thanks@user234839:已经有一个示例可以使用
var xml=your_object.Serialize():)谢谢你们两位。让我来实现它,然后回来将它标记为答案。错误1扩展方法必须在非泛型静态类中定义,并指向var utf8=new UTF8Encoding()行中的“utf8”;错误1“System.Text.Encoding.GetString(byte[])无法访问,因为其保护级别对应于行返回utf8.GetString(mem.ToArray());