1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-24 07:02:08 +01:00
Files
archived-doc-ja/reference/com/dotnet.xml
2024-06-14 17:01:59 +01:00

131 lines
4.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<reference role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="class.dotnet">
<titleabbrev>dotnet</titleabbrev>
<title>dotnet クラス</title>
<partintro>
<!-- {{{ dotnet intro -->
<section xml:id="dotnet.intro">
&reftitle.intro;
<para>
dotnet クラスにより、
クラスやメソッドが <link xlink:href="&url.com.visible;">COM に見えている場合</link>
.Net アセンブリからクラスを生成して
そのメソッドをコールしたりプロパティにアクセスしたりできるようになります。
</para>
<para>
staticクラス をインスタンス化したり、staticメソッド を呼び出すことはサポートされていません。
<literal>System.Collections.Generic.List</literal>
のようなジェネリッククラスをインスタンス化することもサポートしていません。
</para>
<para>
.Net クラスによっては、IDispatch を実装していないものがあります。
それらはインスタンス化はできるものの、メソッドをコールしたり
プロパティへアクセスすることをサポートしていません。
</para>
<note>
<para>
この機能を利用するには、Webサーバーに .Netランタイムをインストールする必要があります。
</para>
</note>
<note>
<para>
PHP 8.0.0 より前のバージョンでは、
<classname>dotnet</classname> クラスは.Net framework 4.0 以降をサポートしていませんでした。
アセンブリが <command>regasm.exe</command> によって登録されている場合は、
それらのクラスは <classname>com</classname> オブジェクトを通じてインスタンス化できます。
PHP 8.0.0 以降では、&php.ini;
<link linkend="ini.com.dotnet-version">com.dotnet_version</link>
を指定することで .Net framework 4.0 以降をサポートします。
</para>
</note>
</section>
<!-- }}} -->
<section xml:id="dotnet.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis class="class">
<ooclass>
<classname>dotnet</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>variant</classname>
</ooclass>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.dotnet')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='dotnet'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<section xml:id="class.dotnet.overloadedmethods">
<title>オーバーロードされたメソッド</title>
<para>
返されるオブジェクトはオーバーロードされています。つまり、通常の
クラスのような固定されたメソッドは存在しないということです。
そのかわりに、プロパティやメソッドへのアクセスは COM を通じて
DOTNET に渡されます。言い換えれば、.Net ランタイムが提供する
COM相互運用レイヤによって .Net オブジェクトが COM 連携用にマップされているという
ことです。
</para>
<para>
dotnet オブジェクトが作成されると、PHP はそれを他の COM
オブジェクトと同等のものとして扱い、同様の規則が適用されます。
</para>
</section>
<section xml:id="class.dotnet.examples">
<title>dotnet の例</title>
<para>
<example xml:id="example.dotnet">
<title>dotnet の例</title>
<programlisting role="php">
<![CDATA[
<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?>
]]>
</programlisting>
</example>
</para>
</section>
</partintro>
&reference.com.entities.dotnet;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->