Tengo una aplicación de prueba de unidad C# en la que estoy trabajando. Hay tres ensamblados involucrados: el ensamblaje de la aplicación C#, un segundo ensamblaje que usa la aplicación y un tercer ensamblaje que usa la segunda.C# Getting Parent Assembly Nombre del conjunto de llamada
Así que las llamadas van así:
First Assembly ------> Second Assembly---------> Third Assembly.
Lo que necesito hacer en la tercera asamblea es conseguir el nombre de la Asamblea puño que llama el segundo montaje.
Assembly.GetExecutingAssembly().ManifestModule.Name
Assembly.GetCallingAssembly().ManifestModule.Name
devuelve el nombre del segundo ensamblaje. y
Assembly.GetEntryAssembly().ManifestModule.Name
retorno NULL
¿Alguien sabe si hay una manera de llegar al nombre de ensamblado de la Primera Asamblea?
Según los otros usuarios exigen aquí puse el código. Esto no es un código del 100% sino un código similar a este.
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);
}
}
}
y el proyecto Método de ensayo
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.");
}
}
}
¿Alguno de estas respuestas útiles? –
@ChrisGessler: No responde es útil porque todos sugieren utilizar Assembly.GetEntryAssembly() y devuelve NULL aquí. –
Todos excepto el mío, que usa StackFrames –