PreserveSigAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
COM birlikte çalışma çağrıları sırasında gerçekleşen HRESULT imza dönüştürmesinin gizlenmesi gerektiğini gösterir.
public ref class PreserveSigAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class PreserveSigAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PreserveSigAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type PreserveSigAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PreserveSigAttribute = class
inherit Attribute
Public NotInheritable Class PreserveSigAttribute
Inherits Attribute
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnek, Tlbexp.exe bir derlemeyi COM tür kitaplığına aktarırken C# yöntemini PreserveSigAttribute nasıl dönüştürmeyi gösterir.
Yönetilen imza:
int DoSomething (long l);
Yönetilmeyen imza:
HRESULT DoSomething ([in] long l, [out, retval] int * i);
Aynı C# yöntemine uyguladığınızda PreserveSigAttribute ve derlemeyi dışarı aktardığınızda, yöntem dönüştürmesi önceki örnekten farklıdır. Tlbexp.exe HRESULT ve [out, retval] parametre değiştiricisini kaldırdığını fark edin.
Yönetilen imza:
[PreserveSig] int DoSomething (long l);
Yönetilmeyen imza:
int DoSomething ([in] long l);
Açıklamalar
Bu özniteliği yöntemlere uygulayabilirsiniz.
Varsayılan olarak ,Tlbexp.exe (Tür Kitaplığı Verme) S_OK HRESULT döndüren bir çağrının[out, retval] parametresi işlev dönüş değeri olarak kullanılacak şekilde dönüştürülmesini sağlar. S_OK HRESULT atılır. S_OK dışındaki HRESULTs için çalışma zamanı bir özel durum oluşturur ve [out, retval] parametresini atar. öğesini yönetilen yöntem imzasına uyguladığınızda PreserveSigAttribute , öznitelikli yöntemin yönetilen ve yönetilmeyen imzaları aynıdır.
Üye birden fazla başarılı HRESULT değeri döndürüyorsa ve farklı değerleri algılamak istiyorsanız özgün yöntem imzasını korumak gerekir. ÇOĞU COM üyesi hresult döndüreceğinden, uygulayarak PreserveSigAttributebaşarı veya başarısızlık HRESULT temsil eden bir tamsayı alabilirsiniz. Tlbexp.exe yönetilen imzada out parametreleri olarak [out, retval] parametrelerini korur.
Tlbimp.exe (Tür Kitaplığı İçeri Aktarıcısı) da bu özniteliği uygular; bir tür kitaplığını içeri aktardığında dispinterfaces özniteliğini uygular.
Not
COM'dan Currencyyönetilen koda birlikte çalışma gerçekleştiğinde ve Object yönetilen kod sınıfıyla PreserveSigAttribute işaretlendiğinde , Guidve dönüş türleri sınıfı tarafından PreserveSigAttribute desteklenmez. Bu koşullar sırasında sınıfıyla PreserveSigAttribute bu dönüş türlerinden birini kullanmayı denediğinizde, bir TypeLoadException oluşturulur.
Oluşturucular
PreserveSigAttribute() |
PreserveSigAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. (Devralındığı yer: Attribute) |
Yöntemler
Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür. (Devralındığı yer: Attribute) |
GetHashCode() |
Bu örneğe ilişkin karma kodu döndürür. (Devralındığı yer: Attribute) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. (Devralındığı yer: Attribute) |
Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1). (Devralındığı yer: Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar. (Devralındığı yer: Attribute) |