У меня есть приложение С# unit test, над которым я работаю. В нем задействованы три сборки: сборка самого приложения С#, вторая сборка, которую использует приложение, и третья сборка, которая используется вторым.
Таким образом, вызовы выглядят следующим образом:
First Assembly ------> Second Assembly---------> Third Assembly.
Что мне нужно сделать в третьей сборке, так это получить название сборки кулака, которая вызвала вторую сборку.
Assembly.GetExecutingAssembly().ManifestModule.Name
Assembly.GetCallingAssembly().ManifestModule.Name
возвращает имя второй сборки. и
Assembly.GetEntryAssembly().ManifestModule.Name
return 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.");
}
}
}