在我的类库的顶层有一个名为EmailTemplateHtml的文件夹,其中包含我想要阅读的文件MailTemplate.html.
我怎样才能做到这一点?
解决方法
从新的解决方案开始,逐步说明:
>创建应用程序项目和类库项目.
>通过解决方案资源管理器中应用程序的上下文菜单中的Properties-> Add-> Reference,从应用程序项目添加对类库项目的引用:
>在类库项目中创建需要读取的文件,然后将其“复制到输出目录”属性设置为“始终复制”或“通过解决方案资源管理器中的”属性窗格复制(如果较新):
>从类库项目或应用程序中(要么使用完全相同的代码),相对于Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)引用您的文件.例如:
using System.Reflection; using System.IO; namespace MyLibrary { public class MyClass { public static string ReadFoo() { var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var filePath = buildDir + @"\foo.txt"; return File.ReadAllText(filePath); } } }
(请注意,在.NET Core之前,您可以使用相对于System.IO.Directory.GetCurrentDirectory()的文件路径,但这在.NET Core应用程序中不起作用,因为the initial working directory for .NET Core apps is the source directory instead of the build directory,显然是因为这是ASP所需要的.NET Core.)
>继续从您的应用程序代码中调用您的库代码,一切都会正常工作.例如.:
using Microsoft.AspNetCore.Mvc; using MyLibrary; namespace AspCoreAppWithLib.Controllers { public class HelloWorldController : Controller { [HttpGet("/read-file")] public string ReadFileFromLibrary() { return MyClass.ReadFoo(); } } }
原文地址:https://www.jb51.cc/csharp/97017.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。