C#:String变量只包含Console.Write中输出内容的子字符串

时间:2017-03-24 21:12:54

标签: c# marshalling

所以,这就是事情。我打算从

打印一个字符串
[StructLayout(LayoutKind.Sequential)]
public struct INTERNET_CACHE_ENTRY_INFO
{
    public UInt32 dwStructSize;
    [MarshalAs(UnmanagedType.LPTStr)]
    public String lpszSourceUrlName;
    ...
}

...

while(...) 
{   
    INTERNET_CACHE_ENTRY_INFO entry;
    ...
    String url = entry.lpszSourceUrlName;
    Console.WriteLine(url);
}

问题在于Console.WriteLine(),我得到Visited:lilymu@file:///C:/Users/lilymu/Desktop/scriptoutput.txt这样的行,但是当我运行调试器并检查url的值时,我得到file:///C:/Users/lilymu/Desktop/scriptoutput.txt,这是截断版本。

为什么呢?我怀疑它可能是没有正确完成的编组,但如果有人能解释为什么会发生这种情况,以及如何解决这个问题,那将会很棒。

0 个答案:

没有答案