c# - 带资源文件的 asp.net 核心 (resx)

标签 c# asp.net-core

我在 ASP.Net Core 中有一个项目需要包含来自资源文件的图像(以生成 PDF)。

因此,我使用 Visual Studio 创建了一个新的资源文件(添加 > 新项目 > 资源文件),命名为 Resource.resx

使用托管资源编辑器(Visual Studio 的默认编辑器),我添加了一个名为 logo.png 的新图像。 使用下面列出的方法创建了一个名为 Resource.Designer.cs 的新文件:

public static System.Drawing.Bitmap logo {
    get {
        object obj = ResourceManager.GetObject("logo", resourceCulture);
        return ((System.Drawing.Bitmap)(obj));
    }
}

现在,只是为了测试,我创建了以下代码:

var logo = Resources.logo;

这引发了一个新的异常,内容如下:

发生“System.InvalidCastException”类型的未处理异常。 附加信息:无法将“System.String”类型的对象转换为类型“System.Drawing.Bitmap”。

我也尝试了这个链接中的所有内容: https://weblogs.asp.net/jeff/beating-localization-into-submission-on-asp-net-5

但结果是一样的。

如果我在控制台应用程序上编写此代码,一切正常。

最佳答案

我找到了另一种对我的问题有效的方法。

http://codeopinion.com/asp-net-core-embedded-resource/

只需要在项目上创建一个文件夹(在我的例子中是 Resources),然后在 project.json 中,我包含了以下代码:

"buildOptions": {
  "embed": ["Resources/**/*"]
}

然后,我的代码:

var assembly = Assembly.GetExecutingAssembly();
var logoStream = assembly.GetManifestResourceStream("ProjectNamespace.Resources.logo.png");

关于c# - 带资源文件的 asp.net 核心 (resx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40551036/

相关文章:

c# - 使用 TargetFramework 创建 Razor 类库到 .net core 3 会引发错误

asp.net-core - 无法使用 VS 2017 访问 IIS 元数据库

c# - 无法在 asp.net core 2.0 中发布原始类型

c# - 如何使用 C# 从谷歌表格中获取最后一行

c# - 抓取用户列表存在于 dynamics crm 中的关系中

c# - .Net基类库是用什么语言写的

c# - 在每个函数中使用 DataContext

c# - 创建 GeoJson c#

c# - Razor Pages - 使用多个提交按钮或多个表单处理分页

c# - 如何将正文中的null传递给asp.net core 3.1中的终结点