Compartilhar via


Método TypeLibConverter.ConvertAssemblyToTypeLib (Assembly, String, TypeLibExporterFlags, ITypeLibExporterNotifySink)

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Converte um assembly em uma biblioteca de tipos COM.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public object ConvertAssemblyToTypeLib(
    Assembly assembly,
    string strTypeLibName,
    TypeLibExporterFlags flags,
    ITypeLibExporterNotifySink notifySink
)
public:
[SecurityPermissionAttribute(SecurityAction::Demand, Flags = SecurityPermissionFlag::UnmanagedCode)]
virtual Object^ ConvertAssemblyToTypeLib(
    Assembly^ assembly,
    String^ strTypeLibName,
    TypeLibExporterFlags flags,
    ITypeLibExporterNotifySink^ notifySink
) sealed
[<SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)>]
abstract ConvertAssemblyToTypeLib : 
        assembly:Assembly *
        strTypeLibName:string *
        flags:TypeLibExporterFlags *
        notifySink:ITypeLibExporterNotifySink -> Object
[<SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)>]
override ConvertAssemblyToTypeLib : 
        assembly:Assembly *
        strTypeLibName:string *
        flags:TypeLibExporterFlags *
        notifySink:ITypeLibExporterNotifySink -> Object
<SecurityPermissionAttribute(SecurityAction.Demand, Flags := SecurityPermissionFlag.UnmanagedCode)>
Public Function ConvertAssemblyToTypeLib (
    assembly As Assembly,
    strTypeLibName As String,
    flags As TypeLibExporterFlags,
    notifySink As ITypeLibExporterNotifySink
) As Object

Parâmetros

  • strTypeLibName
    Type: System.String

    O nome do arquivo da biblioteca de tipos resultante.

Valor Retornado

Type: System.Object

Um objeto que implementa a interface do ITypeLib.

Implementa

ITypeLibConverter.ConvertAssemblyToTypeLib(Assembly, String, TypeLibExporterFlags, ITypeLibExporterNotifySink)

Comentários

Para obter mais informações sobre ITypeLib, consulte sua documentação existente na biblioteca MSDN.

Exemplos

using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.InteropServices;

[ComImport,
GuidAttribute( "00020406-0000-0000-C000-000000000046" ),
InterfaceTypeAttribute( ComInterfaceType.InterfaceIsIUnknown ),
ComVisible( false )]
public interface UCOMICreateITypeLib
{
    void CreateTypeInfo();
    void SetName();
    void SetVersion();
    void SetGuid();
    void SetDocString();
    void SetHelpFileName();
    void SetHelpContext();
    void SetLcid();
    void SetLibFlags();
    void SaveAllChanges();
}

public class App
{
    public static void Main()
    {
        Assembly asm = Assembly.LoadFrom( "MyAssembly.dll" );
        TypeLibConverter converter = new TypeLibConverter();
        ConversionEventHandler eventHandler = new ConversionEventHandler();

        UCOMICreateITypeLib typeLib = (UCOMICreateITypeLib)converter.ConvertAssemblyToTypeLib( asm, "MyTypeLib.dll", 0, eventHandler ); 
        typeLib.SaveAllChanges();
    }
}

public class ConversionEventHandler : ITypeLibExporterNotifySink
{
    public void ReportEvent( ExporterEventKind eventKind, int eventCode, string eventMsg )
    {
        // Handle the warning event here.
    }

    public Object ResolveRef( Assembly asm )
    {
        // Resolve the reference here and return a correct type library.
        return null; 
    }   
}
Imports System
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Runtime.InteropServices

<ComImport(), GuidAttribute("00020406-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown), ComVisible(False)> _
Public Interface UCOMICreateITypeLib
    Sub CreateTypeInfo()
    Sub SetName()
    Sub SetVersion()
    Sub SetGuid()
    Sub SetDocString()
    Sub SetHelpFileName()
    Sub SetHelpContext()
    Sub SetLcid()
    Sub SetLibFlags()
    Sub SaveAllChanges()
End Interface 'UCOMICreateITypeLib

Public Class App

    Public Shared Sub Main()
        Dim asm As [Assembly] = [Assembly].LoadFrom("MyAssembly.dll")
        Dim converter As New TypeLibConverter()
        Dim eventHandler As New ConversionEventHandler()

        Dim typeLib As UCOMICreateITypeLib = CType(converter.ConvertAssemblyToTypeLib(asm, "MyTypeLib.dll", 0, eventHandler), UCOMICreateITypeLib)
        typeLib.SaveAllChanges()
    End Sub 'Main
End Class 'App

Public Class ConversionEventHandler
    Implements ITypeLibExporterNotifySink

    Public Sub ReportEvent(ByVal eventKind As ExporterEventKind, ByVal eventCode As Integer, ByVal eventMsg As String) Implements ITypeLibExporterNotifySink.ReportEvent
        ' Handle the warning event here.
    End Sub 'ReportEvent

    Public Function ResolveRef(ByVal asm As [Assembly]) As [Object] Implements ITypeLibExporterNotifySink.ResolveRef
        ' Resolve the reference here and return a correct type library.
        Return Nothing
    End Function 'ResolveRef

End Class 'ConversionEventHandler
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Runtime::InteropServices;

[ComImport,
GuidAttribute("00020406-0000-0000-C000-000000000046"),
InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown),
ComVisible(false)]
interface class UCOMICreateITypeLib
{
   void CreateTypeInfo();
   void SetName();
   void SetVersion();
   void SetGuid();
   void SetDocString();
   void SetHelpFileName();
   void SetHelpContext();
   void SetLcid();
   void SetLibFlags();
   void SaveAllChanges();
};

public ref class ConversionEventHandler: public ITypeLibExporterNotifySink
{
public:
   virtual void ReportEvent( ExporterEventKind eventKind, int eventCode, String^ eventMsg )
   {
      // Handle the warning event here.
   }

   virtual Object^ ResolveRef( Assembly^ a )
   {
      // Resolve the reference here and return a correct type library.
      return nullptr;
   }
};

int main()
{
   Assembly^ a = Assembly::LoadFrom( "MyAssembly.dll" );
   TypeLibConverter^ converter = gcnew TypeLibConverter;
   ConversionEventHandler^ eventHandler = gcnew ConversionEventHandler;
   UCOMICreateITypeLib^ typeLib = dynamic_cast<UCOMICreateITypeLib^>(converter->ConvertAssemblyToTypeLib( a, "MyTypeLib.dll", static_cast<TypeLibExporterFlags>(0), eventHandler ));
   typeLib->SaveAllChanges();
}

Segurança

SecurityPermission

for permission to call unmanaged code.

Security Action: Demand.

Associated Enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode

Informações de Versão

.NET Framework
Disponível desde 1.1

Confira Também

Classe TypeLibConverter
Namespace System.Runtime.InteropServices

Retornar ao início