A classe dotnet

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introdução

A classe dotnet permite instanciar uma classe a partir de uma montagem .Net, chamar seus métodos e acessar suas propriedades, se a classe, os métodos e as propriedades estiverem » visíveis para o COM.

Não há suporte para instanciar classes estáticas nem chamar métodos estáticos. A instanciação de classes genéricas como System.Collections.Generic.List também não é suportada.

Algumas classes .Net não implementam IDispatch, portanto, embora possam ser instanciadas, não há suporte para chamar métodos ou acessar propriedades nessas classes.

Note:

É necessário instalar o .Net Runtime no servidor web para utilizar esse recurso.

Note:

Antes do PHP 8.0.0, o .Net Framework 4.0 e posteriores não eram suportados pela classe dotnet. Se os assemblies tivessem sido registrados com regasm.exe, as classes poderiam ser instanciadas como objetos com. A partir do PHP 8.0.0, o .Net Framework 4.0 e posteriores são suportados através da diretiva com.dotnet_version do php.ini.

Resumo da classe

class dotnet extends variant {
/* Métodos */
public __construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)
}

Métodos sobrecarregados

O objeto retornado é um objeto sobrecarregado, o que significa que o PHP não vê nenhum método fixo como acontece com as classes normais; em vez disso, qualquer acesso a propriedade ou método é passado para o COM e de lá para o DOTNET. Em outras palavras, o objeto .Net é mapeado por meio da camada de interoperabilidade COM fornecida pelo .Net Runtime.

Depois de criar um objeto dotnet, o PHP o trata de forma idêntica a qualquer outro objeto COM; todas as mesmas regras se aplicam.

Exemplos de dotnet

Example #1 Exemplo dotnet

<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Olá ");
echo $stack->Pop() . $stack->Pop();
?>

Table of Contents