在反射中重命名NameSpace?

时间:2018-05-01 15:39:24

标签: c# reflection namespaces

当代码尝试通过反射获取命名空间名称时,使用:

typeof(MyNamespace.MyClass).Namespace;

或其他方法,我希望Namespace名称返回我预定义的字符串。

这不起作用:

typeof(MyNamespace.MyClass).Namespace  = "helloWorld";

任何方式?

P.S。请不要发布以下答案:“在源代码中更改名称空间”......

1 个答案:

答案 0 :(得分:3)

处理类型和其他程序集元数据的部分反射API是只读的。您不能更改或影响任何此类调用(包括命名空间)返回的任何值 - 它们只是读取程序集的元数据。

要实现您的要求,您需要更改和重新编译源代码(直接或在解编译IL之后)并在编译之前重写命名空间。