Seb*_*ann 5 .net c# mscorlib resharper-5.0
我需要一个ReadOnlyDictionary.所有帖子告诉我,.Net 4.0中没有.出于这个原因,我创建了自己的实现.
在做完Resharper 5.1后告诉我一个模糊的引用,System.Collections.ObjectsModel.ReadOnlyDictionary但代码编译没有错误.
我试图使用此实现,但它无法访问.为什么?
我编写了以下代码来测试ReadOnlyDictionary.Net 4.0中是否存在:
var foo = from assembly in AppDomain.CurrentDomain.GetAssemblies()
where assembly.FullName.Contains("mscorlib")
from type in assembly.GetTypes()
where type.Name.StartsWith("ReadOnly")
select type.FullName + " " + assembly.FullName;
Run Code Online (Sandbox Code Playgroud)
令人惊讶的结果是:
System.Collections.ReadOnlyCollectionBase mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Collections.ObjectModel.ReadOnlyCollection`1 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Collections.ObjectModel.ReadOnlyDictionary`2 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Collections.ObjectModel.ReadOnlyDictionaryHelpers mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Runtime.InteropServices.WindowsRuntime.ReadOnlyArrayAttribute mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Runtime.InteropServices.WindowsRuntime.ReadOnlyDictionaryKeyCollection`2 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Runtime.InteropServices.WindowsRuntime.ReadOnlyDictionaryKeyEnumerator`2 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Runtime.InteropServices.WindowsRuntime.ReadOnlyDictionaryValueCollection`2 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Runtime.InteropServices.WindowsRuntime.ReadOnlyDictionaryValueEnumerator`2 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Security.ReadOnlyPermissionSet mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Security.ReadOnlyPermissionSetEnumerator mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Collections.ArrayList+ReadOnlyList mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Collections.ArrayList+ReadOnlyArrayList mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Run Code Online (Sandbox Code Playgroud)
ReadOnlyDictionary.Net 4.0中有一个.我使用dotPeek 1.1来反映这种类型并且它是公开的.
为什么这种类型无法访问?我该怎么做才能防止Resharper 5.1中的模糊引用(7.1没有这个问题)?
ReadOnlyDictionary在.NET 4.5中引入.现在.NET 4.5是一个"超级顶级"安装,这就是为什么你在mscorlib的版本中看到它.但是,如果您的项目是针对.NET 4.0,那么可能Visual Studio在某处有一些引用程序集,它告诉它哪些类型实际上在.NET 4.0中.
如果您可以将应用程序升级到目标.NET 4.5,那将是最简单的修复.在修复R#警告方面 - 如果它只发生在旧版本中,您可能只想忽略它.如果这是一个开源项目,您可能希望将其记录在某处.
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |