如何从完整的汇编字符串中获取汇编名称?

时间:2016-03-30 22:00:17

标签: c# .net reflection .net-assembly

我有一个这样的字符串:

"MyProduct.Framework.Business.ShopBusiness"

但是它自己的程序集名称只是:

"MyProduct.Framework.Business"

我需要创建一个这样的字符串:

"MyProduct.Framework.Business.ShopBusiness, MyProduct.Framework.Business"

因为我正试图解决这个问题: https://stackoverflow.com/a/3512351/375422

基本上我有这个:

Type executingClass = Type.GetType(TestContext.FullyQualifiedTestClassName);

我需要这样的事情:

Type executingClass = Type.GetType(TestContext.FullyQualifiedTestClassName + ", " + Assembly.FromString(TestContext.FullyQualifiedTestClassName));

我上面发明了“Assembly.FromString()”有没有内置方法?

换句话说:如何从TestContext获取正在执行的测试的程序集名称?

2 个答案:

答案 0 :(得分:1)

类名称空间和程序集名称之间没有直接链接。因此,通常情况下,不可能仅从类名中获取完全限定名称。

答案 1 :(得分:0)

找到最后一个位置“。”和子串到那个位置。

var fullTypeName = "MyProduct.Framework.Business.ShopBusiness";
var typeIndex = assemblyTypeName.LastIndexOf(".");
var namespace = assemblyTypeName.Substring(0, assemblyIndex);

然后添加你的命名空间:

var assemblyQualifiedTypeName = fullTypeName + ", " + namespace