骨のダイスを転がそう
2011-08-09
_ [ASP.NET] DataContractSerializer
XMLを設定ファイル的に使用したい、ということで XmlSerializer を使った読み書きをしようとしていたんだけれど、これは、public のクラスでしかも、public の set、get がついたものしかシリアライズしてくれない。
で、いろいろ探していたら、WCF なんかで使う DataContractSerializer は、set get があろうがなかろうが、[DataMember] 属性をつければシリアライズしてくれる。
おお、良いじゃないか。何かものすごくトリッキーなことをしている記事も見かけたけど、こういうのはちょっとイヤです(笑)。
http://blogs.msdn.com/b/sowmy/archive/2008/10/04/serializing-internal-types-using-xmlserializer.aspx
_ [C#] ruby の freeze みたいなのがほしい。
http://msdn.microsoft.com/ja-jp/library/system.windows.freezable%28v=VS.80%29.aspx
これによると、Freezable というクラスを継承すれば良いらしいんだが……。freeze させたいクラスは、みんなコレ継承しなけりゃいけないのか?
2011-08-30
_ [Ruby] nanoc で出力時に、tidy を通す
require 'tidy' module Nanoc3::Filters class Tidy < Nanoc3::Filter def run(content, params={}) ::Tidy.path = '/usr/lib/libtidy.so' ::Tidy.open(:wrap => 0, :tidy_mark => false) do |tidy| tidy.options.indent = true tidy.options.char_encoding = "raw" tidy.clean(content) end end end Nanoc3::Filter.register '::Nanoc3::Filters::Tidy', :tidy end
というのを、 ./lib に入れておいて Rules で
compile '*' do if item[:extension] == "html" filter :tidy end end
フィルタの中に、共有ライブラリのパスを書かせる、というのはちょっとダサいな……。