-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathdotnet.xml
More file actions
130 lines (119 loc) · 4.62 KB
/
dotnet.xml
File metadata and controls
130 lines (119 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?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
-->