Próbuję dowiedzieć się, jak sprawdzić, czy komponent ma wartość NULL (np. Nie znaleziono w Tridion) w niestandardowym zapleczu. Po prostu nie wiem, jak to sprawdzić, poza złapaniem błędu.Session.GetObject w Tridion 2011 zwraca składnik dla nieistniejącego elementu
Component comp = (Component)session.GetObject(base.ComponentUri);
if (component != null)
{
bool isCheckedOut = component.IsCheckedOut;
}
else
{
// how do I get in here!
}
jestem 100% pewien, że URI jest poprawna ('tcm: 113-438134') i 100% pewność, że nie ma na magazynie Tridion z tym URI. Powyższy kod wygeneruje błąd na component.IsCheckedOut:
The item tcm:113-438134-16 does not exist.
Jak sprawdzić istnienie elementu Tridion? Próbowałem umieszczenie obsady na końcu, co nie pomogło:
Component comp = session.GetObject(base.ComponentUri) as Component;
i próbowałem nie rzucając w ogóle, ale stosując IdentifiableObject, który również nie robi żadnej różnicy. Ktoś wie, jak to zrobić?
Właściwie to nie spodziewałem się tego **;) **. Czy to dlatego, że TOM.NET nadal jest "tylko do odczytu"? –
Twoja sugestia działa, przy okazji, tnx! –
Nie, to dlatego, że ładowanie TOM.NET w rzeczywistości ładuje o wiele więcej niż tylko interfejs do Tridion - ładuje Tridiona w procesie. Całość tego. Za pomocą programów ładujących zdarzenia, zarządzania kolejkami, łączenia połączeń z bazami danych i wielowątkowości oraz instancji COM i szablonów silników itp. Oficjalny blog tutaj: http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_19AF6C2427DF4781A866981FA8D62192 –