Czy mogę przetestować, czy typ został zarejestrowany w kontenerze Unity bez wywoływania rozstrzygania i przechwytywania wyjątku?Testowanie, czy typ został zarejestrowany w Unity
Odpowiedz
Unity 2.0 będzie mieć metodę IsRegistered
, za pomocą której można się dowiedzieć, czy dany typ został zarejestrowany w kontenerze.
Beta1 Unity 2.0 jest dostępna na Codeplex od 10 lutego. Zobacz informacje o wersji i pobierz ją tutaj; http://unity.codeplex.com/wikipage?title=Unity2%20Beta1
UPDATE:
pobierane i badane Unity 2.0 beta 1 na 27 lutego 2010 roku, i to przez długi jeszcze gotowej produkcji. Jeśli używasz Unity 1.2 dzisiaj, będziesz musiał wykonać ważną pracę, aby Unity 2.0 działało z powodu niekompletnego (?) Interfejsu IUnityContainer. Więc jeśli chcesz mieć IsRegistered metodę dzisiaj pracuje, można dokonać metodę rozszerzenia takiego:
public static class UnityContainerExtensions
{
public static bool IsRegistered<T>(this IUnityContainer container)
{
try
{
container.Resolve<T>();
return true;
}
catch
{
return false;
}
}
}
Zauważ, że nie używam ResolveAll
tutaj. Powodem tego jest to, że nie powróci ResolveAll
domyślne (un nazwie) rejestracji, jak określono w docs Unity:
Metoda ta jest przydatna, jeśli już zarejestrowany wiele typów tego samego typu, ale różnych nazw.
Należy pamiętać, że ta metoda NIE zwraca instancji dla domyślnej rejestracji (bez nazwy).
Twoja jedyna inna opcja (obecnie) to użycie ResolveAll<T>()
i wyliczenie wyników.
Podejrzewa się, dzięki, – johnc
- 1. Unity: Zastąp zarejestrowany typ innym typem w środowisku wykonawczym
- 2. Sprawdzanie, czy konwerter został już zarejestrowany
- 3. ViewPager PagerObserver nie został zarejestrowany
- 4. Mongoose Schema nie został zarejestrowany dla modelu
- 5. MissingSchemaError: Schemat nie został zarejestrowany dla modelu
- 6. Rozwiązywanie problemów z usługą Azure Service Fabric: "Typ ServiceType nie został zarejestrowany w skonfigurowanym limicie czasu."
- 7. Jak mogę przekazać argumenty konstruktora, gdy rejestruję typ w Unity?
- 8. Testowanie typ rodzajowy w Delphi
- 9. Czy istnieje TryResolve w Unity?
- 10. Konstruktor nie został znaleziony typ
- 11. Już zarejestrowany w/appname /: Model użytkownika jest już zarejestrowany
- 12. Sprawdź, czy Windsor ma komponent dopasowanie zarejestrowany
- 13. Określanie, czy ASP.Net jest poprawnie zarejestrowany
- 14. Unity 3.5 to Unity 4.5.4
- 15. Unity 3D Sprzęt zewnętrzny ankietowania asynchronicznego w Unity
- 16. SerializationException: Typ nie został rozstrzygnięty dla elementu "..."
- 17. Co to znaczy, że raport o błędach został zarejestrowany w tablecie z Androidem?
- 18. Jak sprawdzić, czy dll COM jest zarejestrowany w C#
- 19. wykryć, czy dana klasa OCX jest zarejestrowany w systemie Windows
- 20. Moduł zarejestrowany w IIS7 nie działa
- 21. Unity Metapliki błędy
- 22. Trwałe poświadczenia użytkownika w WPF w/Unity i MVVM
- 23. W Unity, jak zatrzymać wyskakujące okienka "Show Unity Splashscreen"
- 24. ViewFlipper: odbiornik nie zarejestrowany
- 25. Czy Soundex został ulepszony?
- 26. Obsługa wielu formatów w Unity
- 27. Java7 PropertyEditors zarejestrowany przez ThreadGroupContext
- 28. Forwarded Types w Microsoft Unity
- 29. Integracja OpenCV (EMGUCV) w Unity
- 30. Czy mogę zrobić zdjęcie w Unity za pomocą aparatu urządzenia?
Dzięki za aktualizację. – johnc