C# 如何从泛型类型获取名称空间?

C# 如何从泛型类型获取名称空间?,c#,generics,namespaces,C#,Generics,Namespaces,我有一个我指定为某种类型的方法 例如 public MyLabels GetLabels() { //我想得到T在这里表示的类型的名称空间 } 我该怎么做?您可以使用typeof(T).FullName 该字符串同时包含类名和名称空间。使用类型的名称空间属性: typeof(T).Namespace 怎么样 typeof(T).Namespace; 至少可以说,链接的文档很有趣。这三句话中的最后两句似乎相互矛盾:如果当前类型表示构造的泛型类型,则此属性返回包含泛型类型定义的命名空间。类似地

我有一个我指定为某种类型的方法

例如

public MyLabels GetLabels()
{
//我想得到T在这里表示的类型的名称空间
}
我该怎么做?

您可以使用
typeof(T).FullName


该字符串同时包含类名和名称空间。

使用
类型的
名称空间
属性:

typeof(T).Namespace
怎么样

typeof(T).Namespace;

至少可以说,链接的文档很有趣。这三句话中的最后两句似乎相互矛盾:如果当前类型表示构造的泛型类型,则此属性返回包含泛型类型定义的命名空间。类似地,如果当前类型表示泛型参数T,则此属性返回包含定义T的泛型类型定义的命名空间。如果当前类型对象表示泛型参数,则此属性返回null“@phoog。我相信这是在谈论
公共类Foo
,此时
T
没有得到解决。对,但第一句话说,例如,对于
IEnumerable
中的
T
,属性将返回
“System.Collections.Generic”
,而第二句说它将返回
null
@phoog。是的,这没什么意义…:(但只要我们知道如何使用……我不在乎。
typeof(T).Namespace;
typeof(T).FullName // namespace and class name 
typeof(T).Namespace // namespace, no class name