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.
Daha önce, bayrağı olan bir örneği çağırdıysanızGetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags), yönetilen nesne sarmalayıcı herhangi ComWrappersCreateObjectFlags.Unwrapçıkarılıyordu.ComWrappers Artık bayrak belirtildiğinde, yalnızca üzerinde çağrılan örnekteki ComWrappersGetOrCreateObjectFromComInstance sarmalayıcılar eşlenmemiş olur.
Unwrap Bayrak, "örnekler arasında" ComWrappers ulaşan tek API'ydi, bu nedenle davranışı uygun değildi. Ayrıca, yeni ComWrappers.TryGetObject(IntPtr, Object) API herhangi ComWrappers bir örnekten com nesnesini açmak için kullanılabilir.
Önceki davranış
Herhangi GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) bir ComWrappers örnekten yönetilen nesne sarmalayıcısını CreateObjectFlags.Unwrap kaldıran bayrağı olan bir örnekte çağrılmasıComWrappers.
Yeni davranış
Bayrağı olan bir GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) örnekte çağrılması ComWrappersCreateObjectFlags.Unwrap, yönetilen nesne sarmalayıcısını yalnızca çağrılan örnekten ComWrappersGetOrCreateObjectForComInstance kaldırır. Farklı ComWrappers bir örnekten bir sarmalayıcı verilirse, ComWrappers örnek yeni bir sarmalayıcı oluşturur.
Sürüm kullanıma sunulmuştur
.NET 8 Önizleme 5
Hataya neden olan değişikliğin türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Önceki davranış uygun değildi. Ayrıca geliştiricilerin kendi özel ComWrappers örneklerini kullanarak COM birlikte çalışmasının kodları için nasıl çalıştığını tanımlayabildiği kapsülleme deneyimini de kırdı.
Önerilen eylem
Önceki davranışı korumak istiyorsanız çağrısından önce öğesini arayın ComWrappers.TryGetObject(IntPtr, Object)GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).