如何防止dotPeek将.config文件转换为C#类

时间:2018-06-20 20:31:33

标签: config decompiling dotpeek

使用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文件的代码。

或者如果有另一个反编译器可以节省我的精力。

谢谢!

0 个答案:

没有答案