Tag: bcl

UnderlyingSystemType何时与当前Type实例不同

System.Type包含UnderlyingSystemType属性。 Msdn 表示 : 指示表示此类型的公共语言运行库提供的类型。 在大多数情况下,此属性只返回当前的Type实例。 我的问题是,在什么情况下此属性不返回当前的Type实例本身。 在这些情况下,当前的Type实例和返回的底层系统类型是什么类型的?

是否需要bindingRedirect .config文件或应用程序中的所有程序集?

使用NuGet为具有多个dll和一个exe的解决方案安装Microsoft.Bcl.Async包,该解决方案使用所有其他dll,NuGet自动为每个项目创建一个.config文件(或添加到现有文件)Bcl包被添加到。 在实践中,我最终得到> 20个包含相同重定向的配置文件。 我理解重定向是必需的 ,但这实际上是所有程序集所必需的,因为它们都由一个应用程序加载(如果重要的话,其中一些是由Prism加载的)? 我从输出目录中删除了所有.config文件,只留下了app.config,应用程序似乎工作正常。 我的假设是正确的,一旦bindingRedirect在启动应用程序时生效,加载到该域的所有其他程序集也会自动使用重定向吗? 或者有任何警告吗? 我问的主要原因是要知道在重新分发应用程序时是否应该包含所有这些配置文件。

在.NET / BCL源代码中混淆注释“string.Empty”的含义?

我试图理解为什么string.Empty是readonly而不是const 。 我看过这篇post,但我不明白微软写的关于它的评论。 正如Jon Skeet在评论中写道 : “我不知道 – 对我来说这没有多大意义,说实话……” 共享源公共语言基础结构2.0版本 。 string.cs位于sscli20 \ clr \ src \ bcl \ system \ string.cs中 // The Empty constant holds the empty string value. //We need to call the String constructor so that the compiler doesn’t mark this as a literal. //Marking this as a literal would mean […]

在代码分析中使用Microsoft.Bcl.Async会导致错误

我正在尝试使用Microsoft.Bcl.Async和代码分析,但是当我运行代码分析时,我得到一个或多个错误。 我正在使用Visual Studio 2012和Update 2。 这对我来说很容易重现: 创建一个针对.Net 4的新默认控制台应用程序。 右键单击References然后选择Manage NuGet Packages… 单击“ Online然后在Search Online框中键入async 。 您应该看到Async for .Net Framework 4 … 单击“ Install并接受所有问题。 添加到Main()一行说: TaskEx.Delay(1000); 和一个using System.Threading.Tasks; 转到项目属性,代码分析部分,然后勾选Enable Code Analysis on Build 。 编译程序。 我收到两个代码分析错误: CA0052运行代码分析时出错CA0052:未选择任何目标。 [错误和警告](全球) CA0055运行代码分析CA0055时出错:无法加载ConsoleApplication2.exe。 读取模块“ConsoleApplication2”时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading.Tasks.TaskEx :: Delay。 [错误和警告](全球) 我为其他测试程序获得了不同的代码分析错误。 我试过的基本Windows窗体应用程序给了我: CA0001错误运行代码分析CA0001:读取模块“AsyncForNet4”时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = […]

为什么BCL中没有AutoResetEventSlim?

为什么BCL中没有AutoResetEventSlim类? 可以使用ManualResetEventSlim进行模拟吗?

安装nuget包“已经添加了相同的密钥。”

我正在尝试安装Microsoft.Bcl.Build 1.0.14 努特回归 Installing ‘Microsoft.Bcl.Build 1.0.14’. Successfully installed ‘Microsoft.Bcl.Build 1.0.14’. Adding ‘Microsoft.Bcl.Build 1.0.14’ to LeadTracker.Calendar. Uninstalling ‘Microsoft.Bcl.Build 1.0.14’. Successfully uninstalled ‘Microsoft.Bcl.Build 1.0.14’. Install failed. Rolling back… An item with the same key has already been added. 这也发生在json.net和其他软件包上。 我可以添加nancy和topshelf,但不能添加json.net和bcl。 我在VS2012和2013中尝试过它。我也尝试卸载nuget并重新安装。 我还尝试将nuget添加到空类库和空控制台应用程序中。 始终返回相同的错误。 这也发生在json.net和其他软件包上。 我也试过没有包文件 任何想法最受赞赏。 这是命令和堆栈跟踪 PM> Install-Package Microsoft.Bcl.Build Installing ‘Microsoft.Bcl.Build 1.0.14’. You are downloading Microsoft.Bcl.Build […]

适用于.NET的高效,不可变,可扩展的集合

在我看来,.NET存在极端缺乏安全,不可变的集合类型,特别是BCL,但我也没有看到外面的工作。 有没有人有一个(最好)生产质量,快速,不可变的.NET集合库的任何指针。 快速列表类型是必不可少的。 我还没准备好切换到F#。 *编辑:注意搜索者,很快就会进入BCL: .NET不可变集合