相关疑难解决方法(0)

格式化XML字符串以打印友好的XML字符串

我有一个XML字符串:

<?xml version='1.0'?><response><error code='1'> Success</error></response>
Run Code Online (Sandbox Code Playgroud)

一个元素与另一个元素之间没有线条,因此很难阅读.我想要一个格式化上述字符串的函数:

<?xml version='1.0'?>
<response>
<error code='1'> Success</error>
</response> 
Run Code Online (Sandbox Code Playgroud)

如果不依靠自己手动编写格式函数,是否有任何我可以随意使用的.Net库或代码片段?

c# xml formatting

165
推荐指数
6
解决办法
18万
查看次数

ASP.NET MVC和WCF

我现在正在进入MVC,但在我的"要在某些方面学习"列表中,我也有WCF.

我只是想知道WCF是否应该/可以在MVC应用程序中使用?背景是我希望桌面应用程序(.NET 3.5,WPF)与我的MVC网站交互,我想知道在两者之间传输数据的最佳方法是什么.我应该只使用特殊的视图/让控制器返回JSON或XML(使用ContentResult)?

也许更重要的是,反过来说,我可以打电话给特殊控制器吗?不确定授权如何在这样的环境中起作用.我可以使用Windows身份验证或(如果站点正在运行表单身份验证)让用户将他/她的凭据存储在应用程序中,但我基本上会在我的应用程序中创建一个HTTP客户端.所以虽然MVC => Application看起来很简单,但是Application => MVC似乎有点棘手并且可能用于WCF?

我不是试图在这里强制使用WCF,但我只是想知道在MVC应用程序中是否确实存在WC​​F的良好用例.

.net asp.net-mvc wcf

27
推荐指数
3
解决办法
2万
查看次数

为什么XmlWriter总是输出utf-16编码?

我有这种扩展方法

    public static string SerializeObject<T>(this T value)
    {
        var serializer = new XmlSerializer(typeof(T));           
        var settings = new XmlWriterSettings
                       {
                        Encoding = new UTF8Encoding(true), 
                        Indent = false, 
                        OmitXmlDeclaration = false,
                        NewLineHandling = NewLineHandling.None
                       };

        using(var stringWriter = new StringWriter()) 
        {
            using(var xmlWriter = XmlWriter.Create(stringWriter, settings)) 
            {
                serializer.Serialize(xmlWriter, value);
            }

            return stringWriter.ToString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但每当我调用它时,它都有一个utf-16指定的编码,即<?xml version="1.0" encoding="utf-16"?>.我究竟做错了什么?

c# xmlwriter xml-serialization

26
推荐指数
2
解决办法
2万
查看次数

.Net XmlWriter - 意外的编码让我感到困惑

环境是VS2008,.Net 3.5

以下C#代码(注意UTF8的指定编码)

XmlWriterSettings settings = new XmlWriterSettings ();
StringBuilder sb  = new StringBuilder();
settings.Encoding = System.Text.Encoding.UTF8;
settings.Indent   = false;
settings.NewLineChars = "\n";
settings.ConformanceLevel =  System.Xml.ConformanceLevel.Document;

XmlWriter writer = XmlWriter.Create (sb, settings);
{
   // Write XML data.
   writer.WriteStartElement ("CCHEADER");
   writer.WriteAttributeString ("ProtocolVersion", "1.0.0");
   writer.WriteAttributeString ("ServerCapabilities", "0x0000000F");
   writer.WriteEndElement ();
   writer.Flush ();
}
Run Code Online (Sandbox Code Playgroud)

实际上生成XML(> <省略,因为它们上面有SO barfs):

?xml version ="1.0"encoding ="utf-16"?
CCHEADER ProtocolVersion ="1.0.0"ServerCapabilities ="0x0000000F"/

为什么我在这里生成了错误的编码?我究竟做错了什么 ?

c# xml

8
推荐指数
1
解决办法
2241
查看次数

标签 统计

c# ×3

xml ×2

.net ×1

asp.net-mvc ×1

formatting ×1

wcf ×1

xml-serialization ×1

xmlwriter ×1