IPropertiesと拡張メソッド

投稿日 : 2008年7月6日 0:00

 String の名前とデフォルト値を持つ定数IProperties の記述に書いたけど、そもそもOptions.GetString("Foo", "foo") というような記述が美しくないよね。Dim foo = Options.Foo 、こうですよね。

 ここでWLWプラグインのプロジェクトに次のような拡張メソッド用のModuleを持ってくると……。

Module PropertiesExtension

    <System.Runtime.CompilerServices.Extension()> _
    Public Function LastUse(ByVal p As IProperties) As DateTime
        Return New DateTime(CLng(p.GetString("LastUse", "0")))
    End Function

End Module

値の取得のときはこうなる。

Dim dateTime = Options.LastUse

良い感じだけど、値の設定ができない……。作るなら Opions.GetLastUse/SetLastUse でしょうか? うーむ。美しさが下がった。

 ちなみに、この例の"LastUse"は、WLWが使ってる値のようでしてプラグイン固有のオプション用のIProperties(つまりOptionsプロパティ)に値が設定されていました。挿入プラグインの場合は、挿入のたびに値が更新されているみたいですが良くはわかりません。URLプラグインではそうではなかったです。

コメントの入力
タイトル
名前
Url
コメント