使用dotPeek进行反编译的文件夹包含一个.config文件,但是该.config文件未包含在我从反编译中保存的新项目中。
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="PhoneDialerAPI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<PhoneDialerAPI.Properties.Settings>
<setting name="DbConnection" serializeAs="String">
<value>SQLDATABASEINSTANCE::PhoneDialerAPI</value>
</setting>
因此,该程序使用的是“自定义配置”部分,但所有设置似乎都已“吸入” Settings.cs类,而Programs.cs使用“ .Default”。
[CompilerGenerated]
[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed class Settings : ApplicationSettingsBase
{
private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings());
private void SettingChangingEventHandler(object sender, SettingChangingEventArgs e)
{
}
private void SettingsSavingEventHandler(object sender, CancelEventArgs e)
{
}
public static Settings Default
{
get
{
return Settings.defaultInstance;
}
}
[DebuggerNonUserCode]
[ApplicationScopedSetting]
[DefaultSettingValue("SOMESERVER::PhoneDialerAPI")]
public string DbConnection
{
get
{
return (string) this[nameof (DbConnection)];
}
}
当我将.config文件带入项目时,Program.cs会忽略该配置文件,因为所有设置都是从“ .Default”中检索的:
int dbType = Settings.Default.DbType;
string dbConnection = Settings.Default.DbConnection;
string dbUser = Settings.Default.DbUser;
string dbPassword = Settings.Default.DbPassword;
string table = Settings.Default.Table;
string serviceId = Settings.Default.ServiceId;
很明显,这不是程序(我反编译的.EXE)的实际运行方式,而是从.config文件而不是.cs文件中的硬编码设置中检索设置的。
这是dotPeek中的设置吗?有毛病吗
我当然可以手动编辑所有这些内容,但是我想知道是否可以在dotPeek中做一些事情来包含.config文件并生成实际上将使用.config文件的代码。
或者如果有另一个反编译器可以节省我的精力。
谢谢!