您好,
我的MVC webapplication中有一个mailhandler类,需要获取mailTemplate文件的物理路径(根目录下的几个文件夹)。我该怎么做呢?我是否必须发送某种httpContext?我的mailHandler是一个singelton所以没有参数的构造函数:
public static EmailHandler Instance
{
get {
if (EmailHandler._emailHandler == null)
EmailHandler._emailHandler = new EmailHandler();
return EmailHandler._emailHandler; }
set { EmailHandler._emailHandler = value; }
}
有什么想法吗?
答案 0 :(得分:1)
就个人而言,我只想告诉它使用的基本路径;那么相同的代码可以在许多环境中工作,而不仅仅是网络。如果您是Web绑定的,HttpContext.Current可能会有所帮助。如果你想在中传递,我会传递抽象的HttpContextBase,ala MVC。
但是传入一个基本路径的字符串要容易得多:)
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以随时抽象应用程序配置:)
public interface IApplicationConfiguration
{
string EMailTemplateFolder { get; }
}
然后将实现此接口的类的实例传入相关方法。将实例传递给EMailHandler是另一种选择:
YourClassEMailHandlerContainer.Instance
.InitializeWith(new ApplicationConfiguration())
ApplicationConfiguration : IApplicationConfiguration
。
在此之后,您只需拨打您的方法。
YourClassEMailHandlerContainer.Instance.ParseTemplate(name)
内部:
var templateFile =
Path.Combine(applicationConfiguration.EMailTemplateFolder, name);
希望这是有道理的。