.NET Core 如何禁止.resx文件自动生成Designer.cs
点击上方蓝字关注“汪宇杰博客”
在 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 {"Name":"Admin","Description":"Moonglade
Admin","ShortDescription":"Moonglade Admin","AvatarBase64":""}.
/// </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相关推荐
- linux设备文件生成,Linux设备文件自动生成(示例代码)
第一种是使用mknod手工创建:# mknod 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置. 具体udev相关 ...
- 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件
根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...
- PNG字幕文件自动生成工具
最近在PR中做视频需要加字幕,虽然有很多字幕工具,但是个人不喜欢用. 用PS做大段的文字又太费时,所以写了一个字幕文件自动生成工具,其实就是自动批量输出透明的PNG文件.
- 文件夹文件自动生成目录的方法-保存到txt
文件夹文件自动生成目录的方法-保存到txt 1.打开记事本: 2.复制以下内容: @echo off dir /b /on >list.txt 3.另存为bat,类型ANSI
- Makefile文件自动生成,ubuntu系统autotools使用
多目录项目用automake和autoconf自动生成Makefile方法 在Linux系统下编写代码,基本上都会遇到Makefile的使用,虽说它对于工程管理有很方便的作用,但对初学者来说要编写出自 ...
- 【Matlab专题】-01-Matlab使用脚本导入SWC Arxml文件自动生成Simulink模型以及生成C代码
附:"Matlab导入SWC Arxml文件自动生成Simulink模型"脚本!!! 目录 1 在DaVinci Development创建SWC.Runnable.Port 2 ...
- 【Latex】Latex小白入门(2)——如何用.bib文件自动生成论文Reference
写在前面: 在研究生阶段搞学术的童鞋们很有可能会接触到Latex这种论文格式编辑工具,一般在论文投稿的时候,大多数期刊和会议会给一个Latex模板,要求将你的论文用Latex编辑成.pdf版本.这里的 ...
- lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc
基于AutoCAD VBA增减挂钩报备坐标文件自动生成 基于AutoCAD VBA增减挂钩报备坐标文件自动生成 摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间.如果利用VBA对 ...
- %=% 引发的aspx文件、.aspx.cs文件和.aspx.designer.cs的一些说明
原文链接:http://www.cnblogs.com/mahaisong/archive/2011/05/16/2047471.html 作者: 沐海-化茧成蝶 ASP.NET中<%=%> ...
最新文章
- stella forum v 2.0 的两款主题样式
- 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...
- android listview的一些设置
- 0327 ARM 裸奔学习总结
- 2016.08.19
- Android特效 五种Toast具体解释
- Java飞机大战敌机消失_Shoot 飞机大战,功能是子弹打在敌机上, 消失 且在内存中 , 小蜜蜂上同理 Games 游戏 247万源代码下载- www.pudn.com...
- 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
- docker集群理解
- oracle 其他用户表主键,Oracle中查看所有的表,用户表,列名,主键,外键
- 【jQuery笔记Part1】04-webstorm定义活动模板
- java 验证码的制作
- Keras中RNN、LSTM、GRU等输入形状batch_input_shape=(batch_size,time_steps,input_dim)及TimeseriesGenerator详解
- Word写作 | 如何在Word中把图片铺满整个页面
- 图像处理——图像的增强技术
- 实验1前篇——BIOS编程空间
- [第四章] 深入理解计算机系统第三版 家庭作业参考答案
- Hadoop性能调优
- PSMN4R8-100BSE MOSFET管 N-CH 100V D2PAK
- 这才不是我想看的《时间简史》
热门文章
- 在Windows 7 Media Center中创建音乐播放列表
- SpringBoot+Shiro学习(四):Realm授权
- 打游戏要存进度-备忘录模式
- zuul转发的一些常见异常
- Angular 4.x 事件管理器及自定义EventManagerPlugin
- 权威解读 | 人类社会正进入DT时代 如何激活生产力?
- URLEncode编码和URLDecode解码
- 通过电话号码获取姓名 (+86或者飞信)
- asp.net 得到上一页地址
- 智能实验室-全能优化(Guardio) 4.0.0.670 beta 8