有没有一种方法来使强类型化的资源文件公开(而不是内部的)?(Is there a way to ma

2019-07-17 16:53发布

这是我想要做什么:

我想创建一个包含我的资源文件(即UI标签和诸如此类的东西)库项目。 我想,然后使用该资源库无论是在我的UI和在我的测试。 (即,基本上对我的资源,我从多个项目中引用一个共同的地方。)

不幸的是,因为StronglyTypedResourceBuilder(产生对资源的代码.NET类)使得资源文件默认情况下内部,我不能引用我的强类型的资源库中的另一个项目(即我的UI或测试),无跳火圈(即类似于描述什么东西在这里 ,或者写一个公共包装类/功能)。

不幸的是,这些解决方案中删除我保持引用强类型的能力。

有没有人发现了一个直接的方式来创建可从多个项目中引用的强类型的.Net资源?

我宁愿避免使用生成事件,以实现这一目标(即做类似的东西替换“内部”的所有实例“公”,但是这基本上是我的,如果我不能找到回退计划一个答案..

Answer 1:

不知道您正在使用Visual Studio的版本,所以我会把步骤任一:

VS 2008 - 当您打开在设计视图中RESX文件,有一个选项在顶部旁边添加资源和删除资源,被称为访问修饰符,这是一个下拉菜单,你可以将生成的代码从内部改变公众。

VS 2005 - 你不必生成代码就像在VS 2008这是加入正因为如此头痛的,一个功能的选项。 有解决办法的,虽然。 你可以使用一个第三方发电机这样的工具 ,或者您可以使用InternalsVisibleTo在你的AssemblyInfo.cs属性添加将能够访问你的资源库中的内部类的项目。



Answer 2:

Visual Studio 2008中,您可以选择生成的资源类是否应该是内部或公开。 也有ResXFileCodeGeneratorEx ,这应该这样做的Visual Studio 2005。



Answer 3:

从数据集设计与属性窗口中看到,有一个“修改”属性。 为了您的数据集,很可能说的内部。

我不知道是否有一个默认的所有新数据集公共设置。



文章来源: Is there a way to make Strongly Typed Resource files public (as opposed to internal)?