InterfaceTypeAttribute Sınıf

Tanım

Yönetilen arabirimin çift, yalnızca dağıtım veya IUnknown YALNıZCA COM'a sunulduğunda olup olmadığını gösterir.

public ref class InterfaceTypeAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
public sealed class InterfaceTypeAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
type InterfaceTypeAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
Devralma
InterfaceTypeAttribute
Öznitelikler

Örnekler

Aşağıdaki örnekte arabirimin COM'a nasıl sunulduğunun nasıl InterfaceTypeAttribute denetlenecekleri gösterilmektedir.

using namespace System::Runtime::InteropServices;

//Interface is exposed to COM as dual.
interface class IMyInterface1{};

//Insert code here.
//Interface is exposed to COM as IDispatch.

[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIDispatch)]
interface class IMyInterface2{};
//Insert code here.
using System.Runtime.InteropServices;

//Interface is exposed to COM as dual.
interface IMyInterface1
{
    //Insert code here.
}

//Interface is exposed to COM as IDispatch.
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
interface IMyInterface2
{
    //Insert code here.
}
Imports System.Runtime.InteropServices

'Interface is exposed to COM as dual.
Interface IMyInterface1
     'Insert code here.
End Interface

'Interface is exposed to COM as IDispatch.
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Interface IMyInterface2
    'Insert code here.
End Interface

Açıklamalar

Bu özniteliği arabirimlere uygulayabilirsiniz.

Varsayılan olarak ,Tlbexp.exe (Tür Kitaplığı Dışarı Aktarıcısı), yönetilen bir arabirimi çift arabirim olarak COM'a sunar ve size geç bağlama esnekliğini veya erken bağlama performansını sunar. Numaralandırma, ComInterfaceType varsayılan davranışı geçersiz kılmanıza ve yalnızca geç bağlamayı veya yalnızca erken bağlamayı belirtmenize olanak tanır. Örneğin, çağıranları yalnızca geç bağlamayla kısıtlamak için meta veriler üretmek üzere bir arabirime uygulayabilirsiniz InterfaceType (ComInterfaceType.InterfaceIsIDispatch) . Arabirimden IDispatch türetilen arabirimler genellikle ikili olsa da, InterfaceIsIDispatch numaralandırma üyesi yalnızca arabirim yöntemlerine geç bağlı çağrılara izin verir. Bu özniteliğin arabirimin yönetilen görünümü üzerinde hiçbir etkisi yoktur. Arabirimlerin COM'a nasıl sunulduğu hakkında ek bilgi için bkz. Dışarı Aktarılan Tür Dönüştürme.

Tlbimp.exe (Tür Kitaplığı İçeri Aktarıcısı) bu özniteliği içeri aktarılan, artık olmayan arabirimlere de uygular; arabiriminin yalnızca dispatch veya IUnknown -only olduğunu belirtmek için uygun numaralandırma üyesini uygular.

Oluşturucular

InterfaceTypeAttribute(ComInterfaceType)

Belirtilen ComInterfaceType numaralandırma üyesiyle sınıfının yeni bir örneğini InterfaceTypeAttribute başlatır.

InterfaceTypeAttribute(Int16)

Belirtilen ComInterfaceType numaralandırma üyesiyle sınıfının yeni bir örneğini InterfaceTypeAttribute 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)
Value

Arabirimin ComInterfaceType COM'a nasıl açıklanması gerektiğini açıklayan değeri alır.

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)

Şunlara uygulanır

Ayrıca bkz.