知道类型C的名称获取Type变量#

时间:2010-06-10 10:28:49

标签: c# reflection

我正在开发一个TypeTranslator类,其方法为Type TranslateType(Type type)。 这个方法得到一种类型的接口,如果有一类接口名称没有前导我创建它,否则会引发异常。
这里有一些代码可以清除以前写的内容:

class Program
{
    interface IAnimal { }
    class Animal : IAnimal { }

void Function()
{
    TypeTranslator typeTranslator = new TypeTranslator();
    Assert(typeTranslator.TranslateType(typeof(IAnimal) == typeof(Animal)));
}

}

是否有可能得到我想要的东西?
谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

看看Type.GetType。可以找到文档here

答案 1 :(得分:2)

您想从字符串变量中获取类型名称吗?如果是,那么您可以使用Type.GetType方法。当然,该方法要求类型名称由其名称空间限定。或者,如果您不希望将类型限制为特定命名空间,则可以使用Assembly.GetTypes方法获取程序集中的所有类型,并查找具有特定名称的类型。

答案 2 :(得分:2)

你听说过dependeny injection吗?也许这正是你所需要的......

有关更多信息,请参阅what is dependency injectionwikipedia

答案 3 :(得分:0)

您可能需要查看Object.GetType()Assembly.GetTypes()(例如,使用Assembly.GetExecutingAssembly()),Type.IsClassType.IsInterface,{{1} }(类似于Type.Name但没有完整的限定符)和FullName类来创建实例。 它基本上是获取所有类型,循环遍历它们,检查它们是否是类类型以及它们的名称是否是接口之一。

相关问题