防止在Resources.Designer中删除(手动输入)代码

Pie*_*luc 4 .net c# resources resx

我在Resources.Designer.cs中添加了一个小函数,它的运行效果很好,问题是当我从Resources.resx中添加或删除某些内容时,此函数总是会被删除,是否有我可以放置的指示符或绕过这个吗?

谢谢!


这是用作索引器的非常简单的方法。

internal static string Keys(string key) 
{ 
   return ResourceManager.GetString(key, resourceCulture); 
} 
Run Code Online (Sandbox Code Playgroud)

之所以这样做,是因为您无法执行Properties.Resources,然后合并一个值。扩展程序可以工作,但是我尝试过并且很花哨,因为它全都是静态方法,您不想实例化。

有想法吗?

wom*_*omp 5

resx文件的代码部分由称为PublicResXFileCodeGenerator的工具(或InternalResXFileCodeGenerator,具体取决于您对资源文件的可见性设置)自动生成。它在文件顶部显示:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.1
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

如果确实需要解决此问题,则需要将PublicResXFileCodeGenerator VS(运行VS来生成resx代码的工具)的子类化,并实现自己的工具,Visual Studio可以在每次刷新资源文件时运行该工具。

覆盖该工具将允许您生成部分类,然后可以将自定义代码存储在另一个.cs文件中,作为资源文件类的另一个部分类。

老实说,也许有更简单的方法。您要实现的自定义代码是什么?你能把它变成扩展方法吗?更多细节可能有助于我们为您指明更好的方向。