/// <summary>XmlDocumentをLoad</summary> /// <param name="filePath">string</param> /// <returns> /// 真 : ロードできた /// 偽 : ロードできなかった /// </returns> private static bool LoadFromFile(string filePath) { if (EmbeddedResourceLoader.Exists(filePath, false)) { XmlDocument xMLMSG = new XmlDocument(); // Load xMLMSG.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(filePath)); // Save GetMessage.DicMSG[filePath] = GetMessage.FillDictionary(xMLMSG); return(true); } else if (ResourceLoader.Exists(filePath, false)) { XmlDocument xMLMSG = new XmlDocument(); // Load xMLMSG.Load(StringVariableOperator.BuiltStringIntoEnvironmentVariable(filePath)); // Save GetMessage.DicMSG[filePath] = GetMessage.FillDictionary(xMLMSG); return(true); } else { return(false); } }
/// <summary>存在チェックのみのメソッド</summary> /// <param name="filePath">[リソース ファイル]格納フォルダのパス</param> /// <param name="fileName">[リソース ファイル]名</param> /// <param name="throwException">存在しない場合例外をスローするかどうかを指定</param> /// <returns>存在する:true、存在しない:false</returns> /// <remarks>自由に利用できる。</remarks> public static bool Exists(string filePath, string fileName, bool throwException) { // パス文字結合 string loadfilepath = Path.Combine(filePath, fileName); // 環境変数の組み込み処理に対応 loadfilepath = StringVariableOperator.BuiltStringIntoEnvironmentVariable(loadfilepath); // 存在チェック if (File.Exists(loadfilepath)) { // 存在する。 return(true); } else { // 存在しない。 if (throwException) { throw new ArgumentException(String.Format( PublicExceptionMessage.RESOURCE_FILE_NOT_FOUND, loadfilepath)); } else { return(false); } } }
/// <summary>[リソース ファイル]から文字列を読み込む。</summary> /// <param name="filePath">[リソース ファイル]格納フォルダのパス</param> /// <param name="fileName">[リソース ファイル]名</param> /// <param name="enc">エンコード</param> /// <returns>[リソース ファイル]から読み込んだ文字列</returns> /// <remarks>自由に利用できる。</remarks> public static string LoadAsString(string filePath, string fileName, Encoding enc) { // パス文字結合 string loadfilepath = Path.Combine(filePath, fileName); // 環境変数の組み込み処理に対応 loadfilepath = StringVariableOperator.BuiltStringIntoEnvironmentVariable(loadfilepath); StreamReader sr = null; try { // 存在チェック if (File.Exists(loadfilepath)) { // 存在する。 } else { //存在しない。 throw new ArgumentException(String.Format( PublicExceptionMessage.RESOURCE_FILE_NOT_FOUND, loadfilepath)); } // 開く sr = new StreamReader(loadfilepath, enc); // 読む return(sr.ReadToEnd()); } finally { // nullチェック if (sr == null) { // 何もしない。 } else { // 閉じる sr.Close(); } } }
/// <summary>コンストラクタ</summary> public TransactionControl() { // トランザクション定義をロードする。 // リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。) if (EmbeddedResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION), false)) { // トランザクション定義(XmlDocument)のロード this.XMLTCD.LoadXml( EmbeddedResourceLoader.LoadXMLAsString( GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION))); } else if (ResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION), false)) { // トランザクション定義(XmlDocument)のロード this.XMLTCD.Load( StringVariableOperator.BuiltStringIntoEnvironmentVariable( GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION))); } else { // チェック if (GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION) == null || GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION) == "") { // 定義が無い(offの扱い)。 // トランザクション定義(XmlDocument)を空で初期化 this.XMLTCD.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><TCD></TCD>"); } else { // 定義が間違っている(エラー)。 // エラーをスロー throw new FrameworkException( FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0], String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1], FxLiteral.XML_TC_DEFINITION)); } } }
/// <summary>コンストラクタ</summary> /// <remarks>CallController、ServiceInterfaceから利用するので、public</remarks> public InProcessNameService() { // インプロセス呼び出しの名前解決定義をロードする。 #region 埋め込まれたリソース ローダでチェック(ここで落とすとハンドルされないので落とさない。) if (EmbeddedResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION), false)) { // インプロセス呼び出しの名前解決定義(XmlDocument)を[埋め込まれたリソース]で初期化 this.XMLTMD_InProcess.LoadXml(EmbeddedResourceLoader.LoadXMLAsString( GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION))); // 戻す return; } else { // 何もしない。 } #endregion #region リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。) if (ResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION), false)) { // インプロセス呼び出しの名前解決定義(XmlDocument)を[リソース]で初期化 this.XMLTMD_InProcess.Load( StringVariableOperator.BuiltStringIntoEnvironmentVariable( GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION))); // 戻す return; } else { // 何もしない。 } #endregion #region チェック(定義の有無や、定義の誤り) if (GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION) == null || GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION) == "") { // 定義が無い(offの扱い)。 // インプロセス呼び出しの名前解決定義(XmlDocument)を空で初期化 this.XMLTMD_InProcess.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><TMD></TMD>"); } else { // 定義が間違っている(エラー)。 // 例外をスロー throw new FrameworkException( FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0], String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1], FxLiteral.XML_TM_INPROCESS_DEFINITION)); } #endregion }
public static string BuiltStringIntoEnvironmentVariable(string builtString) { return(StringVariableOperator.BuiltStringIntoEnvironmentVariable(builtString)); }
/// <summary>コンストラクタ</summary> /// <remarks>インナークラス</remarks> public SharedPropertyManager() { // 共有情報定義をロードする。 XmlDocument xMLSP = new XmlDocument(); if (GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION) == null || GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION) == "") { // 定義が無い(offの扱い)。 // 共有情報定義(XmlDocument)を空で初期化 xMLSP.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><SPD></SPD>"); } else { //// 定義が間違っている(エラー)。 //// エラーをスロー //throw new FrameworkException( // FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0], // String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1], // FxLiteral.XML_SP_DEFINITION)); #region 埋め込まれたリソース ローダでチェック(ここで落とすとハンドルされないので落とさない。) if (EmbeddedResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION), false)) { // 共有情報定義(XmlDocument)を[埋め込まれたリソース]で初期化 xMLSP.LoadXml(EmbeddedResourceLoader.LoadXMLAsString( GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION))); //// 戻す //return; } else { // 何もしない。 } #endregion #region リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。) if (ResourceLoader.Exists( GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION), false)) { // 共有情報定義(XmlDocument)を[リソース]で初期化 xMLSP.Load( StringVariableOperator.BuiltStringIntoEnvironmentVariable( GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION))); //// 戻す //return; } else { // 何もしない。 } #endregion } #region すべてのSHAREDPROPタグをDictionary化 // すべてのSHAREDPROPタグを取得、大文字・小文字は区別する。 XmlNodeList xmlNodeList = xMLSP.GetElementsByTagName(FxLiteral.XML_SP_TAG_SHARED_PROPERTY); foreach (XmlNode xmlNodeSP in xmlNodeList) { // 属性の取得 XmlNode xmlNodeKey = xmlNodeSP.Attributes.GetNamedItem(FxLiteral.XML_CMN_ATTR_KEY); XmlNode xmlNodeVal = xmlNodeSP.Attributes.GetNamedItem(FxLiteral.XML_CMN_ATTR_VALUE); if (xmlNodeKey == null) { // id属性なしの場合 throw new FrameworkException( FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[0], String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[1], String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR_ATTR, FxLiteral.XML_CMN_ATTR_KEY, "-"))); } if (xmlNodeVal == null) { // description属性なしの場合 throw new FrameworkException( FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[0], String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[1], String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR_ATTR, FxLiteral.XML_CMN_ATTR_VALUE, xmlNodeKey.Value))); } this.DicSP.Add(xmlNodeKey.Value, xmlNodeVal.Value); } #endregion }
/// <summary> /// log4net.ILogインスタンスの取得 /// </summary> /// <param name="loggerName">ロガー名</param> /// <returns>log4netのインターフェイス</returns> public static log4net.ILog GetLog4netIf(string loggerName) { lock (LogManager._lock) { // null対策 if (LogManager._logIfHt == null) { LogManager._logIfHt = new Dictionary <string, log4net.ILog>(); } // すでにlog4net.ILogインスタンスが存在する。 if (LogManager._logIfHt.ContainsKey(loggerName)) // Dic化でnullチェック変更 { // 生成済みのlog4net.ILogインスタンスを返す。 return((log4net.ILog)LogManager._logIfHt[loggerName]); } else { // #12-start // 定義ファイル string log4netConfFile = GetConfigParameter.GetConfigValue(PubLiteral.LOG4NET_CONF_FILE); // log4netの設定ファイルのパス if (log4netConfFile == null || log4netConfFile == "") { // 定義ファイルのパスが無い場合 // 空のロガーを返す(エラーにはならない) #if NETSTD return(log4net.LogManager.GetLogger(Assembly.GetEntryAssembly(), "")); #else return(log4net.LogManager.GetLogger("")); #endif } else { #if NETSTD // Repositoryなる何か。 ILoggerRepository logRep = log4net.LogManager.CreateRepository( Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy)); #else #endif // 埋め込まれたリソース ローダで存在チェック if (EmbeddedResourceLoader.Exists(log4netConfFile, false)) { // ログ定義 [埋め込まれたリソース] XmlDocument xmlDef = new XmlDocument(); // Exceptionが上がり得る。 xmlDef.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(log4netConfFile)); if (xmlDef["log4net"] == null) { // XmlElement(log4net)が無い場合 throw new ArgumentException(String.Format( PublicExceptionMessage.XML_ELEMENT_ERROR, PublicExceptionMessage.XML_ELEMENT_ERROR_LOG4NET)); } // log4net #if NETSTD XmlConfigurator.Configure(logRep, (XmlElement)xmlDef["log4net"]); #else XmlConfigurator.Configure(xmlDef["log4net"]); #endif } else { // リソース ローダで存在チェック(存在しなければエラー) ResourceLoader.Exists(log4netConfFile, true); // ログ定義 [リソース ファイル] → ストリームを開く FileStream s = new FileStream( StringVariableOperator.BuiltStringIntoEnvironmentVariable(log4netConfFile), FileMode.Open, FileAccess.Read, FileShare.Read); // log4netのXML形式の設定ファイルを読み込む。 #if NETSTD XmlConfigurator.Configure(logRep, s); #else XmlConfigurator.Configure(s); #endif s.Close(); } // log4net.ILogインスタンスを初期化する。 #if NETSTD LogManager._logIfHt.Add( loggerName, log4net.LogManager.GetLogger(Assembly.GetEntryAssembly(), loggerName)); #else LogManager._logIfHt.Add(loggerName, log4net.LogManager.GetLogger(loggerName)); #endif // 生成したlog4net.ILogインスタンスを返す。 return((log4net.ILog)LogManager._logIfHt[loggerName]); } // #12-end } } }