# Класс dotnet

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

## Введение

Класс dotnet позволяет создавать объекты из сборок .Net, вызывать их методы и использовать их свойства, если класс, методы и свойства » видимы для COM.

Ни создание экземпляров статических классов, ни вызов статических методов не поддерживаются. Создание экземпляров универсальных классов, таких как `System.Collections.Generic.List`, также не поддерживается.

Некоторые классы в .Net не реализуют IDispatch, поэтому, хотя их объекты можно создавать, вызов методов или доступ к свойствам этих классов не поддерживается.

> Замечание:

> Вам нужно установить библиотеки времени исполнения .Net на ваш веб-сервер, чтобы воспользоваться этой функцией.

> Замечание:

> До PHP 8.0.0 .Net framework 4.0 и более поздние версии не поддерживаются классом dotnet. Однако если сборки были зарегистрированы с помощью regasm.exe, классы могут быть созданы как объекты com. Начиная с PHP 8.0.0, .Net framework 4.0 и более поздние версии поддерживаются с помощью директивы php.ini com.dotnet_version.

## Обзор класса

class dotnet extends variant {
/* Методы */
public function __construct(string `$assembly_name`, string `$datatype_name`, int `$codepage` = `CP_ACP`)
}

## Перегруженные методы

Возвращаемый объект является перегруженным, то есть PHP не видит каких-либо фиксированных методов, как это происходит с обычными классами; вместо этого свойства и доступ к методам передаётся через COM, а оттуда в DOTNET. Другими словами, объект .Net отображается через уровень взаимодействия COM, предоставляемый библиотекой времени исполнения .Net.

Как только вы создали объект dotnet, PHP обрабатывает его идентично любому другому объекту COM; применяются все те же правила.

## Примеры dotnet

Пример #1 Пример использования dotnet

    <?php
    $stack = new dotnet("mscorlib", "System.Collections.Stack");
    $stack->Push(".Net");
    $stack->Push("Привет ");
    echo $stack->Pop() . $stack->Pop();
    ?>

## Содержание

- dotnet::__construct — Конструктор класса dotnet

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open