Strong-Named resources in F#

2 浏览
0 Comments

Strong-Named resources in F#

参考这个SO帖子中提供的步骤,我成功地添加了一个资源文件,并且可以查询我包含的资源,但是我必须手动使用ResourceManager类来获取嵌入的资源 - 如下所示:

let someText = ResourceManager("strings", System.Reflection.Assembly.GetCallingAssembly()).GetObject("SomeText")

在VB.NET和C#中,这些资源是具有强名称的。因此,如果我有一个名为"SomeText.txt"的资源文件,我可以在代码中调用它:

var someText = MyDefaultNamespace.Properties.Resources.SomeText;

在F#中,有办法使资源具有像C#和VB.NET中那样的强名称吗?或者可以使用T4文本模板吗?

0
0 Comments

NF中的强命名资源的问题及解决方法

在F#中,有时候我们需要使用C#或VB.NET项目中的强命名资源,但是直接在F#项目中使用这些资源会遇到问题。本文将介绍出现这个问题的原因以及解决方法。

问题描述:

F#项目中无法直接访问C#或VB.NET项目中的强命名资源。

解决方法:

虽然以下方法只是一种变通方法,但可以将资源移动到C#或VB.NET项目中,并将生成的资源类型的访问修饰符更改为public,以便可以从F#中访问它们,具体步骤如下:

1. 创建一个C#项目并添加一个资源(RESX)文件。

2. 将自定义工具从ResXFileCodeGenerator更改为PublicResXFileCodeGenerator

3. 或者:更改资源文件的访问修饰符为Public

这样,我们就可以在F#项目中访问这些强命名资源了。

注意:这种方法只是一种变通方法,并不是直接在F#项目中使用强命名资源的最佳实践。但是如果确实需要在F#项目中使用这些资源,这种方法可以起到一定的作用。

希望本文对于在F#中使用强命名资源的问题有所帮助。

0