有人可以向我解释这种行为吗?
如果您使用第一个字符串执行帖子底部的片段,它将返回与用于输入的字符串完全相同的字符串; 这就是我的预期.
输入1:
<?xml version='1.0' encoding='UTF-8'?>
<Company>
<Creator>Me</Creator>
<CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
<Contacts>
<Contact>
<ContactID>365</ContactID>
</Contact>
</Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)
输出1:
<?xml version='1.0' encoding='UTF-8'?>
<Company>
<Creator>Me</Creator>
<CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
<Contacts>
<Contact>
<ContactID>365</ContactID>
</Contact>
</Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)
现在,如果您使用第二行(const string xml
),这是相同的字符串,但在一行而不是两行,它返回以下
输入2
<?xml version='1.0' encoding='UTF-8'?>
<Company>
<Creator>Me</Creator>
<CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
<Contacts>
<Contact>
<ContactID>365</ContactID>
</Contact>
</Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)
输出2
<?xml version='1.0' encoding='UTF-8'?>
<Creator>Me</Creator>2010-01-25T21:58:32.493
<Contacts>
<Contact>
<ContactID>365</ContactID>
</Contact>
</Contacts>
Run Code Online (Sandbox Code Playgroud)
2之间的唯一区别是第一个在xml声明之后有一个换行符,但是你可以看到第二个输出错过了Parent标签和第三个标签.任何想法?
这是我使用的代码:
public void XmlReader_Eats_Tags_IsTrue()
{
//this first xml declaration is on two lines - line break is right after the xml declaration …
Run Code Online (Sandbox Code Playgroud) 我试图将检索到的注册表值转换object
为byte[]
.它存储为REG_BINARY
.我试着用BinaryFormatter
用MemoryStream
.但是,它增加了我不想要的开销信息.当我通过执行该函数将字节数组转换为字符串时,我观察到了这一点Convert.ToBase64String(..)
.我正在执行这些功能,因为我正在测试在注册表中存储和检索加密密钥.
我有一些图像(主要是png和jpg),我存储在SQL Server 2008的FileStream中.我能够检索所述图像并将它们存储在MemoryStream中.
我有一个网页,我需要在MemoryStream中显示图像.有没有什么方法可以在HTML图像标记内显示MemoryStream的内容(甚至更好,在ASP.NET图像控件中)?
谁能给我一个如何从MemoryStream获取PdfReader的示例吗?我可以看到PdfReader类有几个看起来很可能候选的方法(GetStreamBytes和GetStreamBytesRaw),但是这些似乎想要iText特定的流,我的只是常规的Byte []或MemoryStream。
这是使用C#和.net4
iTextSharp.text.pdf.PdfReader rdr = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我正在使用API,并且方法会将图像存储到内存流中,但该方法返回的值是指向内存流的Integer指针和大小值.c#是否支持使用指针进行C风格的内存操作?
如何从内存指针获取图像并将其保存到文件流或另存为文件?有人可以参考这个指针吗?
为什么这个动作导致客户端的空文件?
public FileResult download() { MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); FileStreamResult fs = new FileStreamResult(stream, "text/plain"); fs.FileDownloadName = "file.txt"; writer.WriteLine("this text is missing !!! :( "); writer.Flush(); stream.Flush(); return fs; }
我只是因为好奇而问这个问题.在MemoryStream中写入的数据在 哪里?这个链接说,
创建其后备存储为内存的流.
我不得不问,它是什么类型的记忆?是RAM还是ROM?我在谷歌搜索但没有找到直接的答案.我看到的每个地方都说数据写在内存中,但没有人清楚地谈论内存的类型.
我想知道您是否可以帮我使用RestSharp为电子邮件附件添加MemoryStream附件对象?
这是我从MailGun获得的代码,但它在此示例中附加了一个物理文件:
谢谢.
public static IRestResponse SendComplexMessage() {
RestClient client = new RestClient();
client.BaseUrl = "https://api.mailgun.net/v2";
client.Authenticator =
new HttpBasicAuthenticator("api",
"key-3ax6xnXXXXXXXX");
RestRequest request = new RestRequest();
request.AddParameter("domain",
"samples.mailgun.org", ParameterType.UrlSegment);
request.Resource = "{domain}/messages";
request.AddParameter("from", "Excited User <me@samples.mailgun.org>");
request.AddParameter("to", "foo@example.com");
request.AddParameter("cc", "baz@example.com");
request.AddParameter("bcc", "bar@example.com");
request.AddParameter("subject", "Hello");
request.AddParameter("text", "Testing some Mailgun awesomness!");
request.AddParameter("html", "<html>HTML version of the body</html>");
// I need to add memorystream object here ---
request.AddFile("attachment", Path.Combine("files", "test.jpg"));
request.AddFile("attachment", Path.Combine("files","test.txt"));
// -------------------------------------------
request.Method = Method.POST;
return client.Execute(request);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码:
var fileStream = new MemoryStream();
var binaryWriter = new BinaryWriter(fileStream);
var binaryReader = new BinaryReader(fileStream);
binaryWriter.Write("Hello");
var msg = binaryReader.ReadString();
Run Code Online (Sandbox Code Playgroud)
但是我得到以下异常:
System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
Run Code Online (Sandbox Code Playgroud)
在读取之前,binaryReader.BaseStream.Length
大于0,但binaryReader.PeekChar()
返回-1.
我究竟做错了什么?
我正在测试不支持System.Net.Mail的.Net Core MVC,我发现的唯一选择是Mailkit,它工作正常,但无法弄清楚如何以二进制形式发送已存储在数据库中的附件。我在MVC 5中使用了以下内容:
var mail = new MailMessage();
mail.Attachments.Add(new Attachment(new MemoryStream(attachment),
attachmentName, attachmentType));
Run Code Online (Sandbox Code Playgroud)
如何在MailKit中做到这一点。
memorystream ×10
c# ×8
asp.net-mvc ×2
asp.net ×1
attachment ×1
binaryreader ×1
binarywriter ×1
bytearray ×1
email ×1
fileresult ×1
image ×1
itextsharp ×1
mailkit ×1
object ×1
pdf-reader ×1
pointers ×1
restsharp ×1
streamwriter ×1
tiff ×1
xml ×1
xmlreader ×1