Este ha sido un problema en el sitio CodePlex, se puede encontrar el código aquí (mira al final de ese hilo y han hecho un método de extensión muy útil ...)
http://unity.codeplex.com/Thread/View.aspx?ThreadId=24543
y la puede utilizar código como este:
if (container.CanResolve<T>() == true)
{
try
{
return container.Resolve<T>();
}
catch (Exception e)
{
// do something else
}
}
CanResolve
es que el método de extensión. En realidad estoy registrar esa extensión sobre la creación del contenedor ... algo como esto:
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);
}
Gracias por la gran respuesta. No estaba seguro de si mi pregunta era clara, pero tu respuesta es exactamente lo que estaba buscando. – Vadim