我必须在项目的Settings文件中存储一些字符串。但是,我无法访问“设置”文件来存储字符串。
我确实在早期项目中访问过属性文件,而没有遇到存储值的任何问题。
Properties.Settings.Default.test = ...
MyApp.Properties.Settings.Default.test = ...
但是在目前的项目中,我不断被Properties does not exist in the current context
驱使
是否有任何设置或某些内容已更改,因为Properties
未出现在Intellisense中?
答案 0 :(得分:42)
当我复制并粘贴插件代码时,我遇到了同样的问题。事实证明,当我复制时,我不小心将其他项目的命名空间留在原地。通过将命名空间更改回适当的项目,我可以使用属性。
答案 1 :(得分:17)
在编译时,Visual Studio会生成一个c#类,允许访问用户和应用程序设置。生成的类在项目设置中指定的默认命名空间中定义。
答案 2 :(得分:6)
通过转到项目属性并单击“设置”选项卡,确保您的项目具有设置文件。如果没有设置文件,它会告诉您并为您提供创建文件的选项。
答案 3 :(得分:4)
就我而言,我引用了一个具有内部/公共访问修饰符的资源。我已将其访问修饰符更改为Public,问题就消失了。
答案 4 :(得分:4)
首先,尝试从头开始重新创建项目,如果它是您的测试环境。此步骤将正确地重新创建默认命名空间。如果您对命名空间配置有信心,可以跳过此步骤。
第二次,如果您仍然在我的示例中无法识别属性,我试图从sqlCon获取数据。
string connectionString = Properties.Settings.Default.sqlCon;
转到项目 - > EventsandDelegates Properties ,如下图所示。确保创建默认设置文件。
只要在“应用程序设置”下创建默认设置,在我的情况下就是SQL连接变量。 Properties
错误将消失。
答案 5 :(得分:3)
我遇到了同样的问题。但是当我向已定义的设置文件添加新设置(很久以前创建)时出现了问题。 以某种方式向设置文件添加设置使Visual Studio将设置的命名空间更改为项目默认命名空间(自上次修改的设置以来已更改)。
因此,因为设置访问修饰符设置为“内部”,并且尝试访问设置的类仍然位于旧的先前命名空间中(尽管仍在同一项目中),但该设置在该类中不可见。
答案 6 :(得分:2)
当我意外地将错误的命名空间作为项目属性中的Default命名空间时,我遇到了这个错误。
要选择默认命名空间,请右键单击解决方案资源管理器属性 - >应用程序选项卡 - >默认命名空间中的项目,并检查它是否与.cs文件的命名空间匹配:
[...]
using System.Text;
using System.Threading;
namespace Correct.Namespace //<-- should match Default namespace field
{
static class Program
{
[...]
答案 7 :(得分:0)
在我的情况下,我引用了另一个项目(A)(B)。两者都在同一个解决方案中。
我可以右键单击AClass和“转到定义”,
但是当我尝试构建项目“B”时,我收到错误“当前上下文中不存在AClass”
答案 8 :(得分:0)
确保您可以在Settings.Designer.cs文件中查看您的设置。如果没有,请尝试删除并重新输入设置。出于某种原因,有时,该工具自动生成的代码不包括您的设置。在这种情况下,设置将不会在intellisense中提供。
答案 9 :(得分:0)
好笑,但就我而言,我在解决方案中的一个项目中定义了Properties
,并试图从另一个项目中访问 。
希望这可以对某人有所帮助。
答案 10 :(得分:0)
我的问题“不包含'属性'的定义”,是由于在名称空间(JsonBreaker)中添加了与名称空间相同的名称(即JsonBreaker.JsonBreaker
)所致。值得注意的是,它正在破坏编译,因为其他一些人似乎有不同的经历。
namespace JsonBreaker {
public class JsonBreaker {
private readonly Options _opt = null;
...
我刚刚将类名(和.cs文件名)更改为Breaker
,并且我的JsonBreaker.Properties.Settings.Default["InteractiveMode"]
调用再次开始编译。
namespace JsonBreaker {
public class Breaker {
private readonly Options _opt = null;
...
答案 11 :(得分:0)
在Visual Studio 2019中运行我的Web项目时遇到了这个问题。在此处尝试某些解决方案失败后,我关闭了VS2019,然后从VS2017重新打开了该项目。现在,属性名称空间已被识别。
答案 12 :(得分:0)
我可以提供的最快解决方案是双击您的resources.resx文件(如果存在),然后将窗口顶部的“访问修饰符”属性从“内部”更改为“公共”,“重建”,该编译应该会成功编译,然后再将其切换回内部并再次重建。之后应该没问题。
答案 13 :(得分:0)
我的情况:
string connectionString = Properties.Settings.Default.SlovickaSQLConnectionString;
我的错误:
我得到:
当前上下文中不存在属性
这是原因:
此数据集必须连接到先前添加的数据库。
现在可以使用了。