2012-07-10 23 views
5

Tôi đang cố gắng tìm ra cách kiểm tra xem một thành phần có rỗng hay không (ví dụ: không tìm thấy trong Tridion) trong phần phụ trợ tùy chỉnh. Tôi chỉ không thấy làm thế nào để kiểm tra này, khác hơn là bắt lỗi.Session.GetObject trong Tridion 2011 trả về thành phần cho mục không tồn tại

Component comp = (Component)session.GetObject(base.ComponentUri); 

if (component != null) 
{ 
    bool isCheckedOut = component.IsCheckedOut; 
} 
else 
{ 
    // how do I get in here! 
} 

Tôi chắc chắn 100% uri là chính xác ('tcm: 113-438134') và 100% chắc chắn rằng không có mục nào trong Tridion với URI đó. Đoạn mã trên sẽ ném ra một lỗi tại component.IsCheckedOut:

The item tcm:113-438134-16 does not exist. 

Làm thế nào để kiểm tra sự tồn tại của một mục Tridion? Tôi đã thử đặt các diễn viên ở cuối, mà không giúp được gì nhiều:

Component comp = session.GetObject(base.ComponentUri) as Component; 

và tôi đã cố gắng không đúc ở tất cả nhưng sử dụng một IdentifiableObject, mà cũng không thực hiện bất kỳ sự khác biệt. Bất cứ ai cũng biết cách làm điều này?

Trả lời

10

Điều này là do tải chậm của Tridion - Nó sẽ không bao giờ trả về một đối tượng rỗng nếu URI có vẻ hợp lệ. Bạn có thể sử dụng session.IsExistingObject(TcmUriOrWebdavUrl) để kiểm tra xem đối tượng có tồn tại không.

Và ...

tôi chắc chắn rằng bạn đang mong này ...

trong một backend tùy chỉnh

Bạn không thể sử dụng API TOM.NET cho các quá trình ngoài Mẫu và Hệ thống sự kiện. Vui lòng sử dụng API dịch vụ cốt lõi thay thế.

+0

Thực ra, tôi đã không hoàn toàn mong đợi điều đó **;) **. Có phải vì TOM.NET vẫn là 'chỉ đọc'? –

+0

đề xuất của bạn hoạt động, nhân tiện, tnx! –

+4

Không, đó là vì tải TOM.NET thực sự tải nhiều hơn chỉ là một giao diện vào Tridion - nó tải Tridion trong quá trình của bạn. Toàn bộ nó. Với bộ nạp sự kiện của nó, và quản lý hàng đợi, và kết nối cơ sở dữ liệu tổng hợp, và đa luồng, và trường hợp COM, và động cơ templating, vv chính thức blurb đây: http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_19AF6C2427DF4781A866981FA8D62192 –

Các vấn đề liên quan