例如,如果我想看看我的.NET选项是用于实现IList或IDictionary的东西。有没有办法在MSDN文档中找到它?
答案 0 :(得分:5)
我认为可以使用Reflector
答案 1 :(得分:3)
要在MSDN中找到它,我通常会去Google,输入类似“MSDN IList”的内容,然后转到IList Interface,其中有“实施IList的类”部分。对于任何接口类都是如此。
如果您找到DictionaryBase等基类,则会有一个名为派生类的链接,它会将您带到显示inheritance hierarchy的树。
答案 2 :(得分:3)
您也可以通过编程方式执行此操作。
如果您知道类型所在的程序集(我使用mscorlib
,因为string
所在的位置),您可以使用此方法构建列表:
List<Type> implementors =
Assembly.GetAssembly(typeof(string))
.GetTypes()
.Where(type => type.GetInterfaces().Contains(typeof(IList)))
.ToList();
List<Type> implementors = new List<Type>();
foreach (Type type in Assembly.GetAssembly(typeof(string)).GetTypes())
{
foreach (Type interfaceType in type.GetInterfaces())
{
if (interfaceType == typeof(IList))
{
implementors.Add(type);
}
}
}
implementors
列表将包含实现接口Types
的{{1}}列表。您可以将IList
更改为您想要的任何界面,IList
,IDictionary
等。
如果要将其扩展到当前ICollection
中的所有程序集,您可以执行以下操作:
AppDomain
这完全取决于您对数据的处理方式。如果您只是想以个人满意度查看它们,Reflector将是您最简单的选择 - 特别是如果您想要查看应用程序域中加载的程序集(假设您有一个应用程序开头)。在这种情况下,我想你可以从GAC加载所有程序集......但这基本上是Reflector所做的,除了你可以选择你想要的那些。
答案 3 :(得分:1)
答案 4 :(得分:0)
您是否有特定用例?我可以使用:
System.Collections.ArrayList (or derived)
System.Collections.ObjectModel.Collection<T> derived
System.Collections.CollectionBase derived
System.Collections.DictionaryBase derived
System.Collections.Hashtable (or derived)