点击上方蓝字关注“汪宇杰博客”

在 Visual Studio 中,如果我们在一个 .NET Core 工程里加入了一个资源文件(.resx),那么你会发现有个对应的 .Designer.cs 文件被自动生成了,每次资源文件的内容有变化,这个设计器文件都会刷新。它本质上就是对应资源文件里的键值对,自动生成访问这些资源的方法。

生成的代码就像这样:

private static global::System.Resources.ResourceManager resourceMan;

private static global::System.Globalization.CultureInfo resourceCulture;

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]

internal DataResource() {

}

/// <summary>

///   Returns the cached ResourceManager instance used by this class.

/// </summary>

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]

internal static global::System.Resources.ResourceManager ResourceManager {

get {

if (object.ReferenceEquals(resourceMan, null)) {

global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Moonglade.Setup.Data.DataResource", typeof(DataResource).Assembly);

resourceMan = temp;

}

return resourceMan;

}

}

/// <summary>

///   Overrides the current thread's CurrentUICulture property for all

///   resource lookups using this strongly typed resource class.

/// </summary>

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]

internal static global::System.Globalization.CultureInfo Culture {

get {

return resourceCulture;

}

set {

resourceCulture = value;

}

}

对于资源文件里的每个Key,都会有个方法来读它的值

/// <summary>

///   Looks up a localized string similar to {&quot;Name&quot;:&quot;Admin&quot;,&quot;Description&quot;:&quot;Moonglade

Admin&quot;,&quot;ShortDescription&quot;:&quot;Moonglade Admin&quot;,&quot;AvatarBase64&quot;:&quot;&quot;}.

/// </summary>

internal static string BlogOwnerSettings {

get {

return ResourceManager.GetString("BlogOwnerSettings", resourceCulture);

}

}

但是,我不希望使用这些代码来读取资源文件。因此我需要禁用自动生成Desinger.cs文件。

事实上,这个Designer.cs文件的生产方式是通过CustomTool生成的,就像EF4-6时候通过T4模板生成代码一样,也是一种CustomTool。给资源文件(.resx)生成对应的 .Designer.cs 文件的CustomTool叫做ResXFileCodeGenerator

Visual Studio 中,你可以在RESX文件的属性窗口里将它设置为 <reset to default> 从而关闭这货

如果你用的是 Visual Studio Code,可以手工编辑csproj文件,删除这段:

<ItemGroup>

<Compile Update="Data\DataResource.Designer.cs">

<DesignTime>True</DesignTime>

<AutoGen>True</AutoGen>

<DependentUpon>DataResource.resx</DependentUpon>

</Compile>

</ItemGroup>

<ItemGroup>

<EmbeddedResource Update="Data\DataResource.resx">

<Generator>ResXFileCodeGenerator</Generator>

<LastGenOutput>DataResource.Designer.cs</LastGenOutput>

</EmbeddedResource>

</ItemGroup>

那么现在,我们如何从资源文件里读取字符串呢?很简单:

ResourceManager rm = new ResourceManager("Moonglade.Setup.Data.DataResource", Assembly.GetExecutingAssembly());

rm.GetString("Your_Resource_Key");

.NET Core 如何禁止.resx文件自动生成Designer.cs相关推荐

  1. linux设备文件生成,Linux设备文件自动生成(示例代码)

    第一种是使用mknod手工创建:# mknod 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置. 具体udev相关 ...

  2. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  3. PNG字幕文件自动生成工具

    最近在PR中做视频需要加字幕,虽然有很多字幕工具,但是个人不喜欢用. 用PS做大段的文字又太费时,所以写了一个字幕文件自动生成工具,其实就是自动批量输出透明的PNG文件.

  4. 文件夹文件自动生成目录的方法-保存到txt

    文件夹文件自动生成目录的方法-保存到txt 1.打开记事本: 2.复制以下内容: @echo off     dir /b /on >list.txt 3.另存为bat,类型ANSI

  5. Makefile文件自动生成,ubuntu系统autotools使用

    多目录项目用automake和autoconf自动生成Makefile方法 在Linux系统下编写代码,基本上都会遇到Makefile的使用,虽说它对于工程管理有很方便的作用,但对初学者来说要编写出自 ...

  6. 【Matlab专题】-01-Matlab使用脚本导入SWC Arxml文件自动生成Simulink模型以及生成C代码

    附:"Matlab导入SWC Arxml文件自动生成Simulink模型"脚本!!! 目录 1 在DaVinci Development创建SWC.Runnable.Port 2 ...

  7. 【Latex】Latex小白入门(2)——如何用.bib文件自动生成论文Reference

    写在前面: 在研究生阶段搞学术的童鞋们很有可能会接触到Latex这种论文格式编辑工具,一般在论文投稿的时候,大多数期刊和会议会给一个Latex模板,要求将你的论文用Latex编辑成.pdf版本.这里的 ...

  8. lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc

    基于AutoCAD VBA增减挂钩报备坐标文件自动生成 基于AutoCAD VBA增减挂钩报备坐标文件自动生成 摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间.如果利用VBA对 ...

  9. %=% 引发的aspx文件、.aspx.cs文件和.aspx.designer.cs的一些说明

    原文链接:http://www.cnblogs.com/mahaisong/archive/2011/05/16/2047471.html 作者: 沐海-化茧成蝶 ASP.NET中<%=%> ...

最新文章

  1. stella forum v 2.0 的两款主题样式
  2. 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...
  3. android listview的一些设置
  4. 0327 ARM 裸奔学习总结
  5. 2016.08.19
  6. Android特效 五种Toast具体解释
  7. Java飞机大战敌机消失_Shoot 飞机大战,功能是子弹打在敌机上, 消失 且在内存中 , 小蜜蜂上同理 Games 游戏 247万源代码下载- www.pudn.com...
  8. 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
  9. docker集群理解
  10. oracle 其他用户表主键,Oracle中查看所有的表,用户表,列名,主键,外键
  11. 【jQuery笔记Part1】04-webstorm定义活动模板
  12. java 验证码的制作
  13. Keras中RNN、LSTM、GRU等输入形状batch_input_shape=(batch_size,time_steps,input_dim)及TimeseriesGenerator详解
  14. Word写作 | 如何在Word中把图片铺满整个页面
  15. 图像处理——图像的增强技术
  16. 实验1前篇——BIOS编程空间
  17. [第四章] 深入理解计算机系统第三版 家庭作业参考答案
  18. Hadoop性能调优
  19. PSMN4R8-100BSE MOSFET管 N-CH 100V D2PAK
  20. 这才不是我想看的《时间简史》

热门文章

  1. 在Windows 7 Media Center中创建音乐播放列表
  2. SpringBoot+Shiro学习(四):Realm授权
  3. 打游戏要存进度-备忘录模式
  4. zuul转发的一些常见异常
  5. Angular 4.x 事件管理器及自定义EventManagerPlugin
  6. 权威解读 | 人类社会正进入DT时代 如何激活生产力?
  7. URLEncode编码和URLDecode解码
  8. 通过电话号码获取姓名 (+86或者飞信)
  9. asp.net 得到上一页地址
  10. 智能实验室-全能优化(Guardio) 4.0.0.670 beta 8