我有一个这样的字符串:
"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获取正在执行的测试的程序集名称?
答案 0 :(得分:1)
类名称空间和程序集名称之间没有直接链接。因此,通常情况下,不可能仅从类名中获取完全限定名称。
答案 1 :(得分:0)
找到最后一个位置“。”和子串到那个位置。
var fullTypeName = "MyProduct.Framework.Business.ShopBusiness";
var typeIndex = assemblyTypeName.LastIndexOf(".");
var namespace = assemblyTypeName.Substring(0, assemblyIndex);
然后添加你的命名空间:
var assemblyQualifiedTypeName = fullTypeName + ", " + namespace