[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 メーリングリストの案内