TypeLibTypeAttribute 类
包含最初为此类型从 COM 类型库导入的 TYPEFLAGS。
**命名空间:**System.Runtime.InteropServices
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Interface, Inherited:=False)> _
Public NotInheritable Class TypeLibTypeAttribute
Inherits Attribute
用法
Dim instance As TypeLibTypeAttribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface, Inherited=false)]
public sealed class TypeLibTypeAttribute : Attribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Interface, Inherited=false)]
public ref class TypeLibTypeAttribute sealed : public Attribute
/** @attribute ComVisibleAttribute(true) */
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface, Inherited=false) */
public final class TypeLibTypeAttribute extends Attribute
ComVisibleAttribute(true)
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface, Inherited=false)
public final class TypeLibTypeAttribute extends Attribute
备注
类型库导入程序 (Tlbimp.exe) 将此属性应用于类或接口。
导入类型库时会应用该属性,决不要更改它。仅当方法的 TYPEFLAGS 计算结果为非零值时才应用它。该属性旨在供需要知道原始 TYPEFLAGS 的设置方式的工具使用。公共语言运行库不使用此属性。
示例
下面的示例演示如何获取类或接口的 TypeLibTypeAttribute 值。
Imports System
Imports System.Runtime.InteropServices
Module B
Public Function IsHiddenInterface(ByVal InterfaceType As Type) As Boolean
Dim InterfaceAttributes As Object() = _
InterfaceType.GetCustomAttributes(GetType(TypeLibTypeAttribute), False)
If InterfaceAttributes.Length > 0 Then
Dim tlt As TypeLibTypeAttribute = InterfaceAttributes(0)
Dim flags As TypeLibTypeFlags = tlt.Value
Return (flags & TypeLibTypeFlags.FHidden) > 0
End If
Return False
End Function
End Module
using System;
using System.Runtime.InteropServices;
namespace B
{
class ClassB
{
public static bool IsHiddenInterface( Type InterfaceType )
{
object[] InterfaceAttributes = InterfaceType.GetCustomAttributes( typeof( TypeLibTypeAttribute ), false );
if( InterfaceAttributes.Length > 0 )
{
TypeLibTypeAttribute tlt = ( TypeLibTypeAttribute ) InterfaceAttributes[0];
TypeLibTypeFlags flags = tlt.Value;
return ( flags & TypeLibTypeFlags.FHidden ) != 0;
}
return false;
}
}
}
using namespace System;
using namespace System::Runtime::InteropServices;
ref class ClassB
{
private:
static bool IsHiddenInterface( Type^ InterfaceType )
{
array<Object^>^InterfaceAttributes = InterfaceType->GetCustomAttributes( TypeLibTypeAttribute::typeid, false );
if ( InterfaceAttributes->Length > 0 )
{
TypeLibTypeAttribute^ tlt = dynamic_cast<TypeLibTypeAttribute^>(InterfaceAttributes[ 0 ]);
TypeLibTypeFlags flags = tlt->Value;
return (flags & TypeLibTypeFlags::FHidden) != TypeLibTypeFlags(0);
}
return false;
}
};
import System.*;
import System.Runtime.InteropServices.*;
class ClassB
{
public static boolean IsHiddenInterface(Type InterfaceType)
{
Object interfaceAttributes[]
= InterfaceType.GetCustomAttributes(
TypeLibTypeAttribute.class.ToType(), false);
if (interfaceAttributes.length > 0) {
TypeLibTypeAttribute tlt
= (TypeLibTypeAttribute)(interfaceAttributes.get_Item(0));
TypeLibTypeFlags flags = tlt.get_Value();
return (int)(flags & TypeLibTypeFlags.FHidden) != 0;
}
return false;
} //IsHiddenInterface
} //ClassB
继承层次结构
System.Object
System.Attribute
System.Runtime.InteropServices.TypeLibTypeAttribute
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0
请参见
参考
TypeLibTypeAttribute 成员
System.Runtime.InteropServices 命名空间