我正在更新几年前构建的旧应用程序,全局命名空间和project.cs文件以及主窗体都被命名为email2case_winForm
我想改变这种情况(除了以更多的OOP方式重建应用程序以使其更灵活,并且能够重用代码),因此将名称更改为email2case
但是现在我无法编译,因为在阅读项目的设置和属性时,找不到这些成员。
以下是我尝试用来读取properties.Settings:
的代码示例XElement x = XElement.Load(email2case.Properties.Settings.Default.e2cConfigFile);
并且该编译器的错误是:
'email2case.email2case'不包含'属性'的定义
以下是班级从全球设置中读取的方式:
this.Url = global::email2case.Settings.Default.email2case_sforce_SforceService;
并且该编译器的错误是:
名称空间“email2case”中不存在类型或命名空间名称“设置”(您是否缺少程序集引用?)
我预感到问题是由app.Config
中的定义造成的,现在是:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<email2case.Properties.Settings>
<setting name="email2case_sforce_SforceService" serializeAs="String">
<value>https://login.salesforce.com/servi...</value>
</setting>
<setting name="e2cConfigFile" serializeAs="String">
<value>C:\email2case\data\e2cConfig.xml</value>
</setting>
</email2case.Properties.Settings>
<email2case.Properties.Settings>
<setting name="email2case_sforce_SforceService" serializeAs="String">
<value>https://login.salesforce.com/serv...</value>
</setting>
</email2case.Properties.Settings>
</applicationSettings>
<system.serviceModel>
<bindings/>
<client/>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><userSettings>
<email2case.email2case.Properties.Settings>
<setting name="enableEWSTrace" serializeAs="String">
<value>False</value>
</setting>
<setting name="attachmentsPathLocal" serializeAs="String">
<value>C:\email2case\temp\</value>
</setting>
<setting name="eTracePath" serializeAs="String">
<value>C:\email2case\Trace\</value>
</setting>
<setting name="ewsTraceKeepDays" serializeAs="String">
<value>1</value>
</setting>
</email2case.email2case.Properties.Settings>
</userSettings>
</configuration>
我不想在不知道正确的方法的情况下进行编辑,那么我应该使用哪些代码来引用我的属性和设置?
或者我应该改变 app.config 中定义的方式?
答案 0 :(得分:7)
问题是由2个问题引起的:
old namespace
替换为new namespace
解决方案是
Properties.
而非email2case.Properties.
... 答案 1 :(得分:1)
将光标放在要更改的位置(名称空间,方法)中,然后按F2,然后将打开一个新窗口并按照说明进行操作
手动重命名方法或命名空间会带来更多错误,因为项目已经构建好,所以当我们运行项目时,visual studio会自动生成设计器代码,并且需要更改该文件
答案 2 :(得分:0)
我遇到了同样的问题(更改了名称空间的大小写之后),请阅读以下内容: https://stackoverrun.com/de/q/244400
在我的情况下,问题是%LocalAppData%\<old namespace>
存在于旧外壳中,即使在开发过程中,也从该位置读取设置。我删除了目录,一切恢复正常。