13,000
回編集
82行目: | 82行目: | ||
各バスへの接続は、最初の使用時に自動的に確立される。<br> | 各バスへの接続は、最初の使用時に自動的に確立される。<br> | ||
ただし、ステートフル操作 (<code>Connection.RegisterServiceAsync</code>等) は許可されていない。<br> | ただし、ステートフル操作 (<code>Connection.RegisterServiceAsync</code>等) は許可されていない。<br> | ||
<br> | |||
<u>※注意</u><br> | |||
<u>実行アプリケーションは特定のD-Busサービスを要求する時、そのD-Busサービスがまだ実行されていない場合、<code>Connection</code>クラスの<code>ActivateServiceAsync</code>メソッドを実行することにより、</u><br> | |||
<u>指定したD-Busサービス名に対してD-Busデーモンにリクエストを送信して、該当サービスがまだ起動していない場合には起動を試みる。</u><br> | |||
<u>これは、D-Busサービスの遅延起動(必要になるまでサービスが起動されない)を可能にするためのものである。</u><br> | |||
<br> | |||
<u>D-Busサービスがオンデマンドで実行されるように設計されている場合に特に有用である。</u><br> | |||
<u>つまり、D-Busサービスは使用される必要がある時にのみ起動されるため、リソースの節約に役立つ。</u><br> | |||
<br> | <br> | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
101行目: | 109行目: | ||
// connection.CreateProxy<<自動生成されたインターフェース名>>("<D-Busサービス名>", new ObjectPath("<D-Busオブジェクト名")); | // connection.CreateProxy<<自動生成されたインターフェース名>>("<D-Busサービス名>", new ObjectPath("<D-Busオブジェクト名")); | ||
var loginManager = connection.CreateProxy<IManager>("org.freedesktop.login1", new ObjectPath("/org/freedesktop/login1")); | var loginManager = connection.CreateProxy<IManager>("org.freedesktop.login1", new ObjectPath("/org/freedesktop/login1")); | ||
// D-Busサービスのヘルパーファイルが起動していない場合、ヘルパーファイルを起動する | |||
// 常に起動しているD-Busサービスにおいては不要である | |||
//await connection.ActivateServiceAsync("<D-Busサービス名>"); | |||
// セッションのリストを取得 | // セッションのリストを取得 |