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 dışarı aktarırken C# yöntemini PreserveSigAttribute olmadan nasıl dönüştürdüğünü 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ürme ö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] parametresinin işlev dönüş değeri olarak kullanılması için 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. COM üyesinin çoğu HRESULT döndüreceğinden, uygulamasını uygulayarak PreserveSigAttributebaşarı veya başarısızlık HRESULT değerini temsil eden bir tamsayı alabilirsiniz. Tlbexp.exe yönetilen imzada tüm [out, retval] parametrelerini out parametreleri olarak 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.
Note
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ı ile PreserveSigAttribute bu dönüş türlerinden birini kullanmayı denediğinizde, bir TypeLoadException oluşturulur.
Oluşturucular
| Name | Description |
|---|---|
| PreserveSigAttribute() |
PreserveSigAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
| GetHashCode() |
Bu örneğin karma kodunu döndürür. (Devralındığı yer: Attribute) |
| GetType() |
Geçerli örneğin Type 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 Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| _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 kullanıma sunulan özelliklere ve yöntemlere erişim sağlar. (Devralındığı yer: Attribute) |