.net 4.0 FileInfo..ctor(字符串文件名)引发异常:SL 4.0或.NET 4.0中的错误?

.net 4.0 FileInfo..ctor(字符串文件名)引发异常:SL 4.0或.NET 4.0中的错误?,.net-4.0,silverlight-4.0,.net 4.0,Silverlight 4.0,以下测试用例通过.NET 4.0: var fiT = new FileInfo("myhappyfilename"); Assert.IsNotNull(fiT); 。。。但在Silverlight 4.0中失败,出现以下错误: System.ArgumentNullException: Value cannot be null. Parameter name: format at System.String.Format(IFormatProvider provider, Strin

以下测试用例通过.NET 4.0:

var fiT = new FileInfo("myhappyfilename");
Assert.IsNotNull(fiT);
。。。但在Silverlight 4.0中失败,出现以下错误:

System.ArgumentNullException: Value cannot be null.
Parameter name: format
   at System.String.Format(IFormatProvider provider, String format, Object[] args)
   at System.Environment.GetResourceString(String key, Object[] values)
   at System.IO.FileSecurityState.EnsureState()
   at System.IO.FileInfo.Init(String fileName, Boolean checkHost)
   at System.IO.FileInfo..ctor(String fileName)
该故障可能是SL 4.0中的一个bug,也可能是.NET 4.0中的一个bug。有人知道那是什么吗


作为记录,我正在VS 2010 RC上运行SL 4.0,这可能是问题的原因。

由于您通常无法从Silverlight访问文件系统,您需要一个完全受信任的OOB应用程序,看起来SL4试图抛出异常,但失败了,因为该异常的文本在SL4测试版中不可用。SL4发布后,您可能会得到正确的异常。

请参阅适用于Siverlight 4的:

当它被提升的信任调用时 应用程序,提供实例方法 用于创建、复制、删除、, 移动、打开文件和辅助工具 在创建文件流对象时。 该类不能被继承

很可能您的应用程序没有运行。如果您想访问那些受限制的方法,则需要对其进行访问

至于它返回null的原因——这很可能是一个bug,可能是传播不当的SecurityException。再说一遍,它可能是按设计的-文档也仍然是预发布的。编辑:盖布的答案在这一点上很可能是正确的