Is there TryResolve in Unity?
This has been an issue on the codeplex site, you can find the code here (look at the bottom of that thread and they have made an extension method...very handy)
http://unity.codeplex.com/Thread/View.aspx?ThreadId=24543
and the you can use code like this:
if (container.CanResolve<T>() == true)
{
try
{
return container.Resolve<T>();
}
catch (Exception e)
{
// do something else
}
}
CanResolve
is that extension method. I'm actually registering that extension upon creation of the container...something like this:
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);
}
Also note that, if you're using Unity 2.0 you can use the new IsRegistered() method and it's generic version as well.