読者です 読者をやめる 読者になる 読者になる

VB.NETでもReflectionでToStringしたい(アレ ver.1.2告知)

はじめに

弊社が公開しているウンコライブラリのアレですが、晴れてversion.1.2をリリースしました。

正直そこまで規模の大きくないライブラリですので、おまけ程度のパフォーマンスの改善と正直どうでも良い機能追加程度です。 追加するべきかどうか迷いましたが、追加しちゃいました。 あと、説明文とかを若干英語化しました。英語訳がアレなのは仕様です。

まぁ、新機能について紹介できたらこれ幸いといった感じです。

機能紹介

弊社ブログはVBに優しいをモットーにしていますので、ここでのサンプルコードはVBで書きます。 ただでさえVBにつらくきびしい世の中ですからね。

なお、C#の方はWikiにありますので、そちらを参照して下さい。

新機能と言うのは、一言で言ってしまうと某有名CSVマッパーライブラリのように文字列形式に含めるメンバーを選択出来るようにした機能です。 まぁ、そのマッパーライブラリに影響を受けまくっている弊ライブラリなので、使い方についても影響を受けるのはもはや時間の問題だった感もあります。

Class Hoge
    Public Property MyProperty As Integer
    Public Property MyProperty2 As String
    Public MyField As String
End Class
Class HogeMap
    Inherits ToStringMap(Of Hoge)

    Public Sub New()
        Map(Function(it) it.MyProperty)
        Map(Function(it) it.MyProperty2).Ignore()
        Map(Function(it) it.MyField).Name("Field1")
    End Sub
End Class
Sub Main()
    Dim h As Hoge = New Hoge With
        {.MyProperty = 1, .MyProperty2 = "Hoge", .MyField = "HogeHoge"}
    Dim m As HogeMap = New HogeMap()

    Dim str As String = m.ToString(h)
    Console.WriteLine(str)
End Sub
Hoge{MyProperty=1,Field1=HogeHoge}

サンプルコードを載っけておけば説明しなくてもなんとかなるだろうという魂胆です。 と言うより二つの言語のドキュメントを整備するコストが大きくて正直まいっちんぐって感じです。

おわりに

隠してもしゃーないので言いますけど、某ライブラリってのはCsvHelperの事です。 式木とかのコードやドキュメントの書き方など、かなり参考にさせてもらっているので頭が上がりません。感謝です。

おわり