我打算用azure编写一个web应用程序,我有一个问题...... 为了发送电子邮件,我使用了我之前写过的类库,我在xlst文件中有电子邮件模板,每次我想发送电子邮件时,我都会创建一个包含我要包含在电子邮件中的信息的对象,将该对象序列化为xml,并使用xlst文件将其转换为html格式的电子邮件。
这对我很有用,我想在我的Azure网络应用中使用它。我的问题是,如何找到xlst文件?我应该在属性选项卡中将其标记为“内容”吗?我该如何访问它?
提前致谢, 涓
答案 0 :(得分:1)
是的,将文件标记为“内容”,然后通过Server.MapPath(“〜/ whatever.xslt”)查找它应该可以正常工作。 (这可能是你在普通网络应用程序中会做的,对吗?)
答案 1 :(得分:1)
正如smarx已经指出的那样,如果你在部署时上传了文件而没有被应用程序更改,Server.MapPath
将会起作用。
在我们的应用程序中,我们使用dependency injection解决此问题。在类库中,我们将定义一个接口,例如ITemplateRepository
没有实施。在您需要类库的项目中,您可以创建该接口的实现,因为在Web应用程序中,您可以安全地使用Server.MapPath,或者转到Azure blob存储或基本上执行任何其他操作。
虽然我们使用DI,但我们只需要看起来像这样的构造函数:
public TemplatedMailService(ITemplateRepository repo) {
this._repo = repo;
}
如果您没有使用DI容器,您可以这样做:
var myService = new ClassLibrary.TemplatedMailService(new WebProject.ServerStoragezrepository());
这将是最具扩展性的方式。但也要研究DI。