我正在开发一个C#单元测试应用程序,涉及到三个程序集- C#应用程序本身的程序集、应用程序使用的第二个程序集以及被第二个程序集使用的第三个程序集。
因此,调用顺序如下:
First Assembly ------> Second Assembly---------> Third Assembly.
在第三个程序集中,我需要获取调用第二个程序集的第一个程序集的名称。
Assembly.GetExecutingAssembly().ManifestModule.Name
Assembly.GetCallingAssembly().ManifestModule.Name
返回第二个程序集的名称。
和
Assembly.GetEntryAssembly().ManifestModule.Name
返回空值
有人知道如何获取第一个程序集的程序集名称吗?
按照其他用户要求,我放置了代码。这不是100%的代码,但是类似于此类的代码。
namespace FirstAssembly{
public static xcass A
{
public static Stream OpenResource(string name)
{
return Reader.OpenResource(Assembly.GetCallingAssembly(), ".Resources." + name);
}
}
}
using FirstAssembly;
namespace SecondAssembly{
public static class B
{
public static Stream FileNameFromType(string Name)
{
return = A.OpenResource(string name);
}
}
}
以及测试项目方法
using SecondAssembly;
namespace ThirdAssembly{
public class TestC
{
[TestMethod()]
public void StremSizTest()
{
// ARRANGE
var Stream = B.FileNameFromType("ValidMetaData.xml");
// ASSERT
Assert.IsNotNull(Stream , "The Stream object should not be null.");
}
}
}