Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tür görselleştiricileri ve özel görüntüleyiciler verileri bir geliştirici için hızlı bir şekilde anlamlı bir şekilde sunar. İfade değerlendirici (EE), üçüncü taraf tür görselleştiricilerini destekleyebilir ve kendi özel görüntüleyicilerini sağlayabilir.
Visual Studio, GetCustomViewerCount yöntemini çağırarak nesnenin türüyle kaç tür görselleştiricinin ve özel görüntüleyicinin ilişkilendirileceğini belirler. Kullanılabilir en az bir görselleştirici veya özel görüntüleyici varsa, Visual Studio bu görselleştiricilerin ve görüntüleyicilerin listesini almak için GetCustomViewerList yöntemini çağırır (aslında görselleştiricileri ve görüntüleyicileri uygulayan bir s listesi) ve bunları kullanıcıya sunar.
Destekleyici tür görselleştiricileri
EE'nin tür görselleştiricilerini desteklemek için uygulaması gereken bir dizi arabirim vardır. Bu arabirimler iki geniş kategoriye ayrılabilir: tür görselleştiricilerini listeleyen arabirimler ve özellik verilerine erişen arabirimler.
Tür görselleştiricilerini listeleme
EE, IDebugProperty3::GetCustomViewerCount ve IDebugProperty3::GetCustomViewerList uygulamasında tür görselleştiricilerin listelenmesini destekler. Bu yöntemler çağrısını karşılık gelen GetCustomViewerCount ve GetCustomViewerList yöntemlerine geçirir.
IEEVisualizerService, CreateVisualizerService çağrılarak elde edilir. Bu yöntem, EvaluateSync'e geçirilen IDebugBinder arabiriminden alınan IDebugBinder3 arabirimini gerektirir.
IEEVisualizerServiceProvider::CreateVisualizerService ayrıca IDebugSymbolProvider ve IDebugAddress arabirimlerini, IDebugParsedExpression::EvaluateSync öğesine geçirilen, gerektirir. Arabirimi oluşturmak IEEVisualizerService için gereken son arabirim, EE'nin uyguladığı IEEVisualizerDataProvider arabirimidir. Bu arabirim, görselleştirilmekte olan özellikte değişiklik yapılmasını sağlar. Tüm özellik verileri, EE tarafından da uygulanan bir IDebugObject arabiriminde kapsüllenmiştir.
Özellik verilerine erişme
Özellik verilerine erişim IPropertyProxyEESide arabirimi aracılığıyla yapılır. Bu arabirimi elde etmek için Visual Studio, IPropertyProxyProvider arabirimini almak için özellik nesnesinde QueryInterface öğesini çağırır (IDebugProperty3 arabirimini uygulayan aynı nesnede uygulanır) ve ardından arabirimi almak için IPropertyProxyEESide yöntemini çağırır.
Arabirimden geçen tüm veriler IEEDataStorage arabiriminde kapsüllenmiştir. Bu arabirim bir bayt dizisini temsil eder ve hem Visual Studio hem de EE tarafından uygulanır. Bir özelliğin verileri değiştirilecek olduğunda, Visual Studio yeni verileri tutan bir IEEDataStorage nesne oluşturur ve özelliğin verilerini güncelleştirmek üzere InPlaceUpdateObject'e geçirilen yeni bir nesne elde etmek için bu veri nesnesiyle IEEDataStorage çağırır.
IPropertyProxyEESide::CreateReplacementObject EE'nin, IEEDataStorage arabirimini uygulayan kendi sınıfını başlatmasına olanak tanır.
Özel görüntüleyicileri destekleme
BayrakDBG_ATTRIB_VALUE_CUSTOM_VIEWER, dwAttrib kendisiyle ilişkilendirilmiş özel bir görüntüleyicisi olduğunu belirtmek için DEBUG_PROPERTY_INFO yapısının (GetPropertyInfo çağrısı tarafından döndürülür) alanında ayarlanır. Bu bayrak ayarlandığında Visual Studio, QueryInterface kullanarak IDebugProperty2 arabiriminden IDebugProperty3 arabirimini alır.
Kullanıcı özel bir görüntüleyici seçerse, Visual Studio yöntemi tarafından sağlanan görüntüleyicileri kullanarak özel görüntüleyicinin CLSID örneğini IDebugProperty3::GetCustomViewerList oluşturur. Ardından Visual Studio, değeri kullanıcıya göstermek için DisplayValue'yu çağırır.
Normalde verilerin IDebugCustomViewer::DisplayValue salt okunur bir görünümünü sunar. Verilerde değişikliklere izin vermek için EE'nin bir özellik nesnesinde verileri değiştirmeyi destekleyen özel bir arabirim uygulaması gerekir. yöntemi, IDebugCustomViewer::DisplayValue verilerin değiştirilmesini desteklemek için bu özel arabirimi kullanır. yöntemi, bağımsız değişken olarak IDebugProperty2 geçirilen arabirimde özel arabirimi pDebugProperty arar.
Hem tür görselleştiricilerini hem de özel görüntüleyicileri destekleme
EE, GetCustomViewerCount ve GetCustomViewerList yöntemlerinde hem tür görselleştiricilerini hem de özel görüntüleyicileri destekleyebilir. İlk olarak EE, sağladığı özel görüntüleyici sayısını GetCustomViewerCount yöntemi tarafından döndürülen değere ekler. İkincisi, EE, kendi özel görüntüleyicilerinin CLSID öğelerini, GetCustomViewerList yöntemi tarafından döndürülen listeye ekler.