Properties.Resources.XXXX命名空间或模块未定义

时间:2013-07-12 01:07:08

标签: f#

我正在尝试从string读取XML文件的文本(作为Resources)。 XML文件名为MyXMLResourceFile.resx

我尝试使用C#方式使用

let myFile : string = Properties.Resources.MyXMLResourceFile

但它给了我错误(在Properties下):

The namespace or module 'Properties' is not defined.

我假设我错过了open,但不知道它会是什么。

对不起,我对来自VB的F#还不熟悉。

其他信息:

我自己按SO answer制作了resx文件,然后查看别人如何访问它。在C#中,他们做了Properties.Resources.XXXX per this project我看到你可以使用ResourceManager但没有看到任何方法将整个文件直接读入string

1 个答案:

答案 0 :(得分:1)

The namespace or module 'Properties' is not defined.

那是因为未定义名称空间属性。您可能从另一个项目中带来了resx文件。打开关联的.Designer文件,如果它没有出现在F#项目中,请在原始项目中打开它。假设原始项目在C#中,您将看到带有一堆C#代码的命名空间。此文件的名称空间必须与您尝试调用它的项目的名称空间相同。

但是,由于这是C#代码,它不会在F#项目上运行。您有两种选择:使用代码生成器在F#代码中使用Properties命名空间生成关联的.Designer类(我不知道这样的生成器是否存在);或者在原始项目中预编译resx并从F#项目中将其作为dll引用,然后可以使用ResourceManager访问它。