[seasar-dotnet:1256] 外だしSQLをファイルシステムから取得したい
Mai Kawasaki
[E-MAIL ADDRESS DELETED]
2009年 2月 10日 (火) 11:39:10 JST
こんにちは、maiです。
現在、VB2008、S2Container + S2DaoでWindowsアプリ開発を行っています。
diconファイルやS2Daoの外だしSQLの内容を、
「埋め込まれたリソース」ではなくファイルシステムから取得し、
現場にて内容の切り替えをしたいと考えています。
diconの内容はファイルシステムからできたのですが、
外だしSQLをファイルシステムから取得することができません。
今のところ、
Seasar.Dao.Impl.DaoMetaDataImplのSetupMethodBySqlFileを
下記のようにすることで対応しようかと考えていますが、
他に良い方法がありましたら、ご教示頂けないでしょうか。
protected virtual void SetupMethodBySqlFile(MethodInfo mi)
{
string baseName = GetSqlFilePath(mi);
string dbmsPath = baseName + _dbms.Suffix + ".sql";
string standardPath = baseName + ".sql";
Assembly asm = _daoInterface.Assembly;
// 追加:ここから
// ファイルシステムから、SQLファイルが取得できるかをチェック
FileInfo sqlFileInfo = new FileInfo(standardPath);
if (sqlFileInfo.Exists) {
//ファイルが存在するなら、StreamReaderを指定されたエンコードで作成する
using (StreamReader sr = new StreamReader(standardPath,
Encoding.GetEncoding(SqlFileEncoding)))
{
string sql = sr.ReadToEnd();
SetupMethodByManual(mi, sql);
}
return;
}
// 追加:ここまで
if (ResourceUtil.IsExist(dbmsPath, asm))
{
string sql = ReadText(dbmsPath, asm);
SetupMethodByManual(mi, sql);
}
else if (ResourceUtil.IsExist(standardPath, asm))
{
string sql = ReadText(standardPath, asm);
SetupMethodByManual(mi, sql);
}
}
--
mai
[E-MAIL ADDRESS DELETED]
seasar-dotnet メーリングリストの案内