ラベル C# の投稿を表示しています。 すべての投稿を表示
ラベル C# の投稿を表示しています。 すべての投稿を表示

2008年10月15日水曜日

.NetFramework2.0のMailMessageクラスの仕様(IFAX編)

System.Net.MailのMailMessageクラスを利用したメール送信アプリケーション作成時に問題が発生した。
簡単に言えばこのクラスは日本規格対応されていない為発生した現象だ。

対象相手はNTTのiFAXだ。

通常このクラスはUTF-8を前提に作られており、Shift-jis対応を行おうとした際には各パートでエンコードを変更しなければならない。
エンコード自体はできるのだが、メールヘッダーの記述順序が存在し、それが原因でこのクラスの利用が見送られた。

  内容:
* 解説書上の以下の記述とSystem.Net.Mailクラスから生成される現象について記します。
*
* 解説書:メールヘッダーのbody部のContent-Type第一句に次の定義が必要
*   Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit
*
* System.Net.Mailで作成した場合の第一句:
* Content-Type: multipart/alternative
*
* これはSystem.Net.Mailクラスで作成されるメールヘッダーはjis・shift-jis規格に完全対応していない為発生する。(UTF-8対応)
* このクラスにあるMailMessageクラスのHeaderメソッドはメールヘッダーを独自に生成する機能では無く、HTMLとテキストを混在して生成できるクラス
* AlternateViewクラスを利用してshift-jisにエンコードしたbody部を作成する必要がある。
* ただ、このクラスを利用すると必ずContent-Type: multipart/alternativeがセットされる為、
* 今回の要求には全く合わない。
*
* これを回避する方法はSocketプログラム(TCP/IPプログラム)を別途手組みで作成する必要がある。

納期との噛み合いもあり無償のツールを利用する事で回避できたが、この問題は各国の仕様に振り回されている感が大きい。

2008年8月8日金曜日

app.configからconnectionStringを取得

app.configファイルからデータベースへのコネクションストリングを取得する方法:

使用するクラス
ConfigurationManager
namespace:System.Configuration

注意:
1.System.Configuration.dll への参照を追加する事で使用可能になります。
2.staticな ConnectionStringSettings クラスを使う事でスレッドセーフなコネクションストリングを生成できます。

例:

using System.Configuration;
...

ConnectionStringSettings conStrings =
ConfigurationManager.ConnectionStrings[SendMail
Biz.Properties.Settings.SendMailConnectionString;
//コネクションストリングの取得

Console.WriteLine(conStrings .ConnectionString);
Console.WriteLine(conStrings .ProviderName);

2008年6月10日火曜日

ProgressBarコントロールの使い方

ふとProgressBarが使いたくなったので、検索したところ参考サイトを発見!!

良く出来ている。

DoEventsやマルチスレッドについても載っているので大いに参考

http://dobon.net/

2008年5月28日水曜日

C#の情報

結構載っているサイト!!

考えるにはベストかと・・・

2008年5月26日月曜日

CSVファイルの取込

Accessでは簡単に出来るCSVファイルのC#(.NET Framework 2.0)でのインポート

TextFieldParserクラスで簡単に出来る。
ただし、TextFieldParserクラスはMicrosoft.VisualBasic.dllに存在する為、参照設定をする事。

名前空間:Microsoft.VisualBasic.FileIO;

参考記事