対象読者
このシリーズ(シリーズ化するぞ!という気合を込めて)は、以下のような方々に少しでも役立てば…と願いつつ、時間があるときに少しずつ書いていきます。- C#、ASP.NET MVCについて基本的な知識がある方
- SVFマニュアルのJavaサンプルコードは理解できたけど、さぁC#でどう作ろう?という方
- SVFの技術情報はWEB検索してもほとんど出てこなくて、毎回サポートに問い合わせないとダメだから面倒!という方
開発・実行環境
WEBサーバーOS | Windows Server | 2008 |
---|---|---|
WEBサーバー | IIS | 7.5 |
APフレームワーク | ASP.NET MVC | 3 |
帳票サーバーOS | Cent OS | 5.6 |
帳票サーバーJVM | Sun Java SE | 6 |
SVF | SVF for PDF | 9 |
IDE | Visual Studio | 2010 |
C#でSVFを利用するならラッパークラスを作れ
C#で SVF を利用するには、(当然ながら)SVFのDLLを参照設定してやります。で、ここに含まれるAPIをC#から直接呼んでもいいんですが、厄介なのは、APIの各関数が終了状態を戻り値として返してくるってところ。
せっかく素敵な例外機構を持っている言語で利用するのであれば、やっぱり呼出元でちまちま戻り値判定するよりは、サクっと例外処理でまとめてしまいたいですよね。
というわけで、API側でエラーになった場合は例外をスローする、というラッパークラスを用意しておくと便利です。
また、関数によっては「エラー」コードと「警告レベル」のコードを返してくるものもあるので、例えば「警告レベルのものは無視しておk」みたいな設定もラッパークラスに対して行えるようにしておくと、さらに便利ですよね。ね?
さらに、DBから取得したデータを保持させているDataTableオブジェクトをポイっと渡せばルールに従ってズバーっと出力してくれるようなメソッドがあると嬉しいですよね。ね?
サンプルソース
上記の要件をまとめたのが、こちらです。(例によって宣伝も兼ねてCode 2 HTMLにて公開)
サンプルソース
このサンプルソースでは、新たに作成したSVFExceptionという例外をスローするようにしています。
取り急ぎ試したい方は、これを全部普通のExceptionクラスなりに変更して使ってみてください。
(ちなみにAPI内部で致命的な例外が発生した時は、SvfrExceptionだったかな?そんな名前のExceptionがDLL側から投げつけられます)
で、このクラスを使う側のサンプルコードですが、それはまた次のエントリーで…。
0 件のコメント:
コメントを投稿