2 // System.Web.UI.BaseParser.cs
5 // Duncan Mak (duncan@ximian.com)
6 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
8 // (C) 2002 Ximian, Inc. (http://www.ximian.com)
12 using System.Collections;
15 using System.Web.Util;
17 namespace System.Web.UI
19 public class BaseParser
21 private HttpContext context;
22 private string baseDir;
23 private string baseVDir;
25 internal string MapPath (string path)
27 return MapPath (path, true);
30 internal string MapPath (string path, bool allowCrossAppMapping)
33 throw new HttpException ("context is null!!");
35 return context.Request.MapPath (path, context.Request.ApplicationPath, allowCrossAppMapping);
38 internal string PhysicalPath (string path)
40 if (Path.DirectorySeparatorChar != '/')
41 path = path.Replace ('/', '\\');
43 return Path.Combine (BaseDir, path);
46 internal bool GetBool (Hashtable hash, string key, bool deflt)
48 string val = hash [key] as string;
55 if (String.Compare (val, "true", true) == 0)
57 else if (String.Compare (val, "false", true) == 0)
60 throw new HttpException ("Invalid value for " + key);
65 internal string GetString (Hashtable hash, string key, string deflt)
67 string val = hash [key] as string;
77 internal HttpContext Context {
78 get { return context; }
79 set { context = value; }
82 internal string BaseDir {
85 baseDir = MapPath (BaseVirtualDir, false);
91 internal virtual string BaseVirtualDir {
94 baseVDir = UrlUtils.GetDirectory (context.Request.FilePath);