// コンストラクタ /// <summary> /// 鳩丸データのデータソースの FileInfo を指定して、HatomaruData のインスタンスを開始します。 /// </summary> protected HatomaruData(HatomaruManager manager, FileInfo f){ myManager = manager; myFile = f; myLastModified = myFile.LastWriteTime; if(Manager.IniData.ExtInfo.ContainsKey(f.Extension.ToLower())){ myExt = Manager.IniData.ExtInfo[f.Extension.ToLower()]; } myBasePath = GetTrueFilePath(); }
// XML データから ExtInfo を取得します。 private void LoadExtInfo(XmlDocument doc){ XmlNodeList extInfosBases = doc.DocumentElement.GetElementsByTagName(ExtensionInfoBase); if(extInfosBases.Count == 0) throw new Exception("ini データに " + ExtensionInfoBase + " が含まれていません。"); XmlElement extInfosBase = extInfosBases[0] as XmlElement; XmlNodeList elems = extInfosBase.GetElementsByTagName(ExtensionInfo); for(int i=0; i < elems.Count; i++){ XmlElement e = elems[i] as XmlElement; ExtInfo ex = new ExtInfo(e); if(ex == null) continue; if(ex.Name == null) continue; myExtInfo[ex.Name] = ex; } }
/// <summary> /// データソースと ExtInfo を元に、FileResponse のインスタンスを開始します。 /// ファイルデータを返すレスポンスに使用します。 /// </summary> public FileResponse(HatomaruData source, ExtInfo ex) : base(source){ myExtInfo = ex; ContentType = ex.ContentType; Charset = ex.Charset; myFileSource = source.File; }