Pandora Pocket

IT系と日常系の備忘録。三日坊主。

この記事で作っていたMQTTHomeClient。
MQTT Brokerから受け取ったTopicから処理を分岐させるんですが、ここで呼び出すWakeOnLANの処理をプロジェクト内で実装しています。
どうせ私しか使わないんでべたべた書いてもいいんですが、勉強がてらMQTTのクライアントの機能拡張をDLL追加でできるように改良してみました。

ひつじ家のスマートホーム化に用いるMQTTクライアント. Contribute to Ovis/MqttHomeClient development by creating an account on GitHub.
[はてなブックマークで表示]

まぁ参考サイトのコードをコピペゲフンゲフン採用させてもらって、WakeOnLANの処理を外部プロジェクトのクラスライブラリ側に寄せただけです。

Interfaceを定義してやって、DLL側とプログラム側でInterfaceに沿った処理を突っ込むだけなので、割と簡単に実装できますね。いやまぁInterfaceの設計が多分一番大変なんでしょうけども。バージョンアップごとに変わっていったらプラグインの追従が死ぬので。

参考サイト

はじめに 前回の「Plugin Architecture」って何だろうか?でまとめを書いたが、それだけでは分かった気になってしまうので、実際に手を動かしてみる。 今回はプログラミング言語の機能としてPluginの実装をするのではなく、アプリケーションレベルで『Plugin機能』を実装していく。 前置き 何はともあれ、コードを見せろ!という方はこちらから。 動作確認環境 Windows 10 Pro .NET Core 2.1 アプリケーションの構成 『参考』に載っているアプリケーションはGUIだが、手っ取り早く実装を試してみたかったので、CLIを作成。 読み込んだプラグイン(.dll)の内容に…
[はてなブックマークで表示]