Questo è stato un problema sul sito CodePlex, è possibile trovare il codice qui (guarda in fondo a quel filo e hanno fatto un metodo di estensione molto utile ...)
http://unity.codeplex.com/Thread/View.aspx?ThreadId=24543
e la si può usare il codice come questo:
if (container.CanResolve<T>() == true)
{
try
{
return container.Resolve<T>();
}
catch (Exception e)
{
// do something else
}
}
CanResolve
è che metodo di estensione. In realtà sto registrando che l'estensione al momento della creazione del contenitore ... qualcosa di simile:
private void CreateContainer()
{
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = // path to config file
// get section from config code goes here
IUnityContainer container = new UnityContainer();
container.AddNewExtension<UnityExtensionWithTypeTracking>();
section.Containers.Default.Configure(container);
}
fonte
2009-05-23 15:53:21
Grazie per l'ottima risposta. Non ero sicuro se la mia domanda fosse chiara ma la tua risposta è esattamente ciò che stavo cercando. – Vadim