背景: 我在一个设置中有一个大的xml字符串,但无法反序列化。 XmlSerializer抱怨它不是有效的xml。在Project>中查看字符串时设置看起来被截断了。
如果应用程序设置的大小有限但我没有找到任何内容,我会用Google搜索。
然后我尝试使用以下代码生成的dummydata重现它:
[Test]
public void DumpDummyData()
{
int n = 500;
var s = new string('a', 100);
using (FileStream stream = File.OpenWrite(@"C:\Temp\"+n+".txt"))
{
using (var writer = new StreamWriter(stream))
{
for (int i = 0; i < n; i++)
{
writer.WriteLine( i +" " +s);
}
}
}
}
在设置中粘贴文件内容时,字符串在第310行被截断。在两个不同的项目中尝试过。
我的问题是应用设置大小的限制是什么?
答案 0 :(得分:5)
所以我做了一个快速测试
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Properties.Settings.Default.test.Length);
Console.ReadKey();
}
}
}
测试设置包含超过50,000个字符的长文本
它确实有用。
我所做的是手动更改了app.config,而不是从visual studio解决方案属性设置。
我假设设置屏幕使用默认的最大值。文本框的默认最大值为32,767个字符。
那么您可以自行更改app.config来再次尝试测试吗?
请勿使用visual studio解决方案属性设置屏幕。
答案 1 :(得分:0)
我只是进行了一次测试,看起来设置字符串可以容纳32,767字节的文本(2个字节的字节)。太巧合了,不要认为它是设计限制。
但是有一个XML文档设置类型(单击“浏览”)。这可能是一种解决限制的方法。