Ho un'applicazione di test dell'unità C# su cui sto lavorando. Vi sono tre assembly coinvolti: l'assembly dell'app C# stesso, un secondo assembly utilizzato dall'app e un terzo assembly utilizzato dal secondo.C# Getting Parent Assembly Nome del Calling Assembly
Così le chiamate vanno in questo modo:
First Assembly ------> Second Assembly---------> Third Assembly.
Cosa devo fare nel terzo assemblea è ottenere il nome dell'Assemblea Pugno che ha chiamato il secondo gruppo.
restituisce il nome del secondo assieme. e
Assembly.GetEntryAssembly().ManifestModule.Name
ritorno NULL
Qualcuno sa se c'è un modo per ottenere il nome di assemblaggio della Prima Assemblea?
Come per gli altri utenti chiedono qui inserisco il codice. Questo non è un codice al 100% ma segue un codice come questo.
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);
}
}
}
e progetto Metodo
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.");
}
}
}
una di queste risposte sono stati utili? –
@ChrisGessler: le risposte non sono utili perché tutti suggeriscono di utilizzare Assembly.GetEntryAssembly() e restituisce NULL qui. –
Tutti tranne il mio, che utilizza lo StackFrames –