AppDomain.CreateComInstanceFrom AppDomain.CreateComInstanceFrom AppDomain.CreateComInstanceFrom AppDomain.CreateComInstanceFrom Method

Definición

Crea una nueva instancia de un tipo COM especificado.Creates a new instance of a specified COM type.

Sobrecargas

CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String)

Crea una nueva instancia de un tipo COM especificado.Creates a new instance of a specified COM type. Los parámetros especifican el nombre de un archivo que contiene un ensamblado con el tipo y el nombre del tipo.Parameters specify the name of a file that contains an assembly containing the type and the name of the type.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Crea una nueva instancia de un tipo COM especificado.Creates a new instance of a specified COM type. Los parámetros especifican el nombre de un archivo que contiene un ensamblado con el tipo y el nombre del tipo.Parameters specify the name of a file that contains an assembly containing the type and the name of the type.

CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String)

Crea una nueva instancia de un tipo COM especificado.Creates a new instance of a specified COM type. Los parámetros especifican el nombre de un archivo que contiene un ensamblado con el tipo y el nombre del tipo.Parameters specify the name of a file that contains an assembly containing the type and the name of the type.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName);
public System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName);
member this.CreateComInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Function CreateComInstanceFrom (assemblyName As String, typeName As String) As ObjectHandle

Parámetros

assemblyName
String String String String

Nombre de un archivo que contiene un ensamblado que define el tipo solicitado.The name of a file containing an assembly that defines the requested type.

typeName
String String String String

Nombre del tipo solicitado.The name of the requested type.

Devoluciones

Objeto contenedor de la nueva instancia especificada por typeName.An object that is a wrapper for the new instance specified by typeName. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Excepciones

assemblyName o typeName es null.assemblyName or typeName is null.

No se puede cargar el tipo.The type cannot be loaded.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

No se ha encontrado ningún constructor público sin parámetros.No public parameterless constructor was found.

No se ha encontrado assemblyName.assemblyName is not found.

typeName es una clase abstracta.typeName is an abstract class.

O bien-or- Este miembro se invocó con un mecanismo de enlace en tiempo de ejecución.This member was invoked with a late-binding mechanism.

El llamador no puede ofrecer atributos de activación para un objeto que no hereda de MarshalByRefObject.The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

assemblyName es una cadena vacía ("").assemblyName is an empty string ("").

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

El objeto COM al que se hace referencia es null.The COM object that is being referred to is null.

Ejemplos

En el ejemplo siguiente se muestraThe following sample demonstrates

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;

[ComVisible(true)]
public ref class MyComVisibleType
{
public:
   MyComVisibleType()
   {
      Console::WriteLine( "MyComVisibleType instantiated!" );
   }

};


[ComVisible(false)]
public ref class MyComNonVisibleType
{
public:
   MyComNonVisibleType()
   {
      Console::WriteLine( "MyComNonVisibleType instantiated!" );
   }

};

void CreateComInstance( String^ typeName )
{
   try
   {
      AppDomain^ currentDomain = AppDomain::CurrentDomain;
      String^ assemblyName = currentDomain->FriendlyName;
      currentDomain->CreateComInstanceFrom( assemblyName, typeName );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

int main()
{
   CreateComInstance( "MyComNonVisibleType" ); // Fail!
   CreateComInstance( "MyComVisibleType" ); // OK!
}

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

[ComVisible(true)]
class MyComVisibleType {
   public MyComVisibleType() {
      Console.WriteLine("MyComVisibleType instantiated!");
   }
}

[ComVisible(false)]
class MyComNonVisibleType {
   public MyComNonVisibleType() {
      Console.WriteLine("MyComNonVisibleType instantiated!");
   }
}

class Test {
   public static void Main() {
      CreateComInstance("MyComNonVisibleType");   // Fail!
      CreateComInstance("MyComVisibleType");      // OK!
   }
   
   static void CreateComInstance(string typeName) {
      try {
         AppDomain currentDomain = AppDomain.CurrentDomain;
         string assemblyName = currentDomain.FriendlyName;
         currentDomain.CreateComInstanceFrom(assemblyName, typeName);
      } catch (Exception e) {
         Console.WriteLine(e.Message);
      }
   }
}
Imports System.Reflection
Imports System.Runtime.InteropServices

<ComVisible(True)> _
Class MyComVisibleType

   Public Sub New()
      Console.WriteLine("MyComVisibleType instantiated!")
   End Sub

End Class

<ComVisible(False)> _
Class MyComNonVisibleType

   Public Sub New()
      Console.WriteLine("MyComNonVisibleType instantiated!")
   End Sub

End Class

Module Test

   Sub Main()
      CreateComInstance("MyComNonVisibleType")   ' Fail!
      CreateComInstance("MyComVisibleType")      ' OK!
   End Sub

   Sub CreateComInstance(typeName As String)
      Try
         Dim currentDomain As AppDomain = AppDomain.CurrentDomain
         Dim assemblyName As String = currentDomain.FriendlyName
         currentDomain.CreateComInstanceFrom(assemblyName, typeName)
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
   End Sub

End Module 'Test

Comentarios

Utilice este método para crear objetos de forma remota sin tener que cargar el tipo localmente.Use this method to create objects remotely without having to load the type locally.

El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value must to be unwrapped to access the real object.

Se System.Runtime.InteropServices.ComVisibleAttribute debe aplicar un atributo con true un valor de explícitamente o de forma predeterminada al tipo com de este método para crear una instancia de ese tipo; de lo TypeLoadException contrario, se produce.A System.Runtime.InteropServices.ComVisibleAttribute attribute with a value of true must be applied either explicitly or by default to the COM type for this method to create an instance of that type; otherwise, TypeLoadException is thrown.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada:ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

Consulte también:

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Crea una nueva instancia de un tipo COM especificado.Creates a new instance of a specified COM type. Los parámetros especifican el nombre de un archivo que contiene un ensamblado con el tipo y el nombre del tipo.Parameters specify the name of a file that contains an assembly containing the type and the name of the type.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyFile, string typeName, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
member this.CreateComInstanceFrom : string * string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Runtime.Remoting.ObjectHandle
Public Function CreateComInstanceFrom (assemblyFile As String, typeName As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As ObjectHandle

Parámetros

assemblyFile
String String String String

Nombre de un archivo que contiene un ensamblado que define el tipo solicitado.The name of a file containing an assembly that defines the requested type.

typeName
String String String String

Nombre del tipo solicitado.The name of the requested type.

hashValue
Byte[]

Representa el valor del código hash calculado.Represents the value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm

Representa el algoritmo hash que usa el manifiesto del ensamblado.Represents the hash algorithm used by the assembly manifest.

Devoluciones

Objeto contenedor de la nueva instancia especificada por typeName.An object that is a wrapper for the new instance specified by typeName. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Excepciones

assemblyName o typeName es null.assemblyName or typeName is null.

No se puede cargar el tipo.The type cannot be loaded.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

No se ha encontrado ningún constructor público sin parámetros.No public parameterless constructor was found.

No se ha encontrado assemblyFile.assemblyFile is not found.

typeName es una clase abstracta.typeName is an abstract class.

O bien-or- Este miembro se invocó con un mecanismo de enlace en tiempo de ejecución.This member was invoked with a late-binding mechanism.

El llamador no puede proporcionar atributos de activación para un objeto que no hereda de MarshalByRefObject.The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

assemblyFile es la cadena vacía ("").assemblyFile is the empty string ("").

assemblyFile no es un ensamblado válido.assemblyFile is not a valid assembly.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

El objeto COM al que se hace referencia es null.The COM object that is being referred to is null.

Comentarios

Utilice este método para crear objetos de forma remota sin tener que cargar el tipo localmente.Use this method to create objects remotely without having to load the type locally.

El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value must to be unwrapped to access the real object.

Se System.Runtime.InteropServices.ComVisibleAttribute debe aplicar un atributo con true un valor de explícitamente o de forma predeterminada al tipo com de este método para crear una instancia de ese tipo; de lo TypeLoadException contrario, se produce.A System.Runtime.InteropServices.ComVisibleAttribute attribute with a value of true must be applied either explicitly or by default to the COM type for this method to create an instance of that type; otherwise, TypeLoadException is thrown.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada:ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

Consulte también:

Se aplica a