410得票32回答
这个“switch on type”有更好的替代品吗?

鉴于 C# 无法对类型使用 switch(我了解到这并没有作为特殊情况添加,因为 is 关系意味着可能适用多个不同的 case),是否有更好的方法来模拟在类型上进行切换,而不是使用此方法?void Foo(object o) { if (o is A) { ((...

273得票8回答
从字符串中创建一个类的实例

有没有一种方法可以根据我在运行时知道的类名创建一个类的实例。基本上,我会在字符串中拥有类的名称。

24得票2回答
IsGenericType和IsGenericTypeDefinition的区别

Type.IsGenericType和Type.IsGenericTypeDefinition有什么区别?有趣的是,IsGenericTypeDefinition的MSDN链接已经失效了. 更新:IsGenericTypeDefinition MSDN的页面. 在尝试检索给定DbContext...

18得票1回答
在使用Office PIA时,如何处理System.Type.Missing或System.Reflection.Missing.Value?

我搜索了这些SO结果,但没有找到与我的问题相关的内容。 我怀疑这可能不是重复的。 我目前正在用.NET C#3.5编写Microsoft.Office.Interop.Excel PIA包装器,并想知道在调用诸如打开给定工作簿之类的方法时最好使用什么。 System.Type.Missin...

18得票4回答
检查 System.Type 是否是给定类的子类的最佳方法

考虑以下代码:public class A { } public class B : A { } public class C : B { } class D { public static bool IsDescendantOf(this System...

16得票1回答
System.TypeCode的值为17时发生了什么?

枚举类型System.TypeCode的定义如下:public enum TypeCode { Empty = 0, Object = 1, DBNull = 2, Boolean = 3, Char = 4, SByte = 5, Byte = 6,...

14得票1回答
Protobuf-Net错误信息:未为类型System.Type定义序列化程序。

尝试序列化 List<Tuple<string, Type, object>> 时,我遇到了以下错误信息:未定义类型为 System.Type 的序列化器。 我尝试过仅序列化上述集合以及序列化具有相同集合定义的类作为 protoMember。两者都导致相同的错误消息。...

10得票2回答
如何在C#中将System.__COMObject的类型返回为System.Type

我正在编写一个程序,想要进行反射操作,但是需要一个Type类的对象,对吧?以便使用 .GetProperties() 方法... 因此我尝试了这个: Type typeName = simObjects.GetType(); 但是 GetType() 返回的是 "System.__COMO...

8得票2回答
`typeof(T).IsAssignableFrom(x.GetType())` 能否安全地重写为 `x is T`?

注意:这不是 "C#中IsAssignableFrom和“is”关键字的用法" 的重复。那个问题问的是 typeof(T).IsAssignableFrom(type)),其中 type 不是一个 object 而是一个 Type。 这似乎很简单——我听到你说,“只需调用 x.GetType(...

7得票2回答
C#反序列化系统类型时,当类型来自已加载程序集时会抛出异常。

我有一个应用程序 a.exe,它运行良好并已加载了一个名为b.dll的程序集,如果这很重要的话,那么这个dll是一个Prism模块。该dll从不在路径中但与a.exe相同的目录中加载。 程序集的加载由Prism完成,并且设置如下: public class MyModuleCatalog ...