Đây là một vấn đề trên trang web CodePlex, bạn có thể tìm mã ở đây (xem ở dưới cùng của chủ đề đó và họ đã thực hiện một phương pháp mở rộng ... rất tiện dụng)
http://unity.codeplex.com/Thread/View.aspx?ThreadId=24543
và bạn có thể sử dụng mã như thế này:
if (container.CanResolve<T>() == true)
{
try
{
return container.Resolve<T>();
}
catch (Exception e)
{
// do something else
}
}
CanResolve
là phương pháp khuyến nông. Tôi thực sự đăng ký đó mở rộng khi tạo của container ... một cái gì đó như thế này:
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);
}
Nguồn
2009-05-23 15:53:21
Cảm ơn câu trả lời tuyệt vời. Tôi đã không chắc chắn nếu câu hỏi của tôi là rõ ràng, nhưng câu trả lời của bạn là chính xác những gì tôi đang tìm kiếm. – Vadim