我有一个正在处理的C#单元测试应用程序。有三个组件涉及--C#应用程序本身的组装,应用程序使用的第二个程序集以及第二个程序集使用的第三个程序集。C#获取调用程序集的父程序集名称
所以调用是这样的:
First Assembly ------> Second Assembly---------> Third Assembly.
我需要在第三组装做的就是拳大会,被称为第二组件的名称。
Assembly.GetExecutingAssembly().ManifestModule.Name
Assembly.GetCallingAssembly().ManifestModule.Name
返回第二个程序集的名称。 和
Assembly.GetEntryAssembly().ManifestModule.Name
返回NULL
有谁知道是否有一种方式来获得的第一组件的组件名称?
根据其他用户的需求在这里我把代码。这不是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.");
}
}
}
是回答这些问题有帮助吗? –
@ChrisGessler:没有答案是有帮助的,因为所有人都建议使用Assembly.GetEntryAssembly(),它在这里返回NULL。 –
除了我的,它使用StackFrames –