【发布时间】:2015-07-29 10:44:54
【问题描述】:
我正在更新一个几年前构建的旧应用程序,全局命名空间和 project.cs 文件以及主窗体都命名为email2case_winForm
我想改变这一点(同时以更多的 OOP 方式重新构建应用程序以使其更灵活,并能够重用代码),所以将名称更改为 email2case
但是现在我在编译时遇到了问题,因为在读取项目的设置和属性时,找不到那些成员。
这是我试图用来读取属性的代码示例。设置:
XElement x = XElement.Load(email2case.Properties.Settings.Default.e2cConfigFile);
那个编译器的错误是:
“email2case.email2case”不包含“属性”的定义
这是一个类从全局设置中读取的方式:
this.Url = global::email2case.Settings.Default.email2case_sforce_SforceService;
那个编译器的错误是:
命名空间“email2case”中不存在类型或命名空间名称“Settings”(您是否缺少程序集引用?)
我有一种预感,这个问题是由 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 中的定义方式吗?
【问题讨论】:
-
你在项目中看到一个 .settings 文件吗?当你在 Visual Studio 中转到 Project -> Properties -> Settings 时你看到了什么?
-
@gideon:结果证明,在正确更改全局命名空间、保存、重建后,属性的正确引用是
Properties.而不是email2case.Properties....你认为我应该添加我的自己的答案,还是关闭/删除问题? -
你应该回答你的问题,添加细节并接受答案(系统将在两天后允许)
-
@gideon:谢谢我已经添加了,请你看看它是否有意义并且对其他人有帮助?
-
是的 :) 干得好!
标签: c# .net winforms projects-and-solutions