发现App.config文件和Settings.settings.cs文件的内容有重复。
  M9aMEIE19lAW 2023年11月02日 25 0

例如,我建立了一个数据源,那么在Settings.setting.cs里面就会多出这样的一段代码:

C# code

  [global::System.Configuration.ApplicationScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
         [global::System.Configuration.DefaultSettingValueAttribute( "Data Source=(local);Initial Catalog=my;Integrated Security=True" )]
         public  string  myConnectionString {
             get  {
                 return  (( string )( this [ "myConnectionString" ]));
             }
         }

而在App.config文件里面多出了下面这些内容:

C# code

 <configSections>
     <!-- For more information on Entity Framework configuration, visit http: //go.microsoft.com/fwlink/?LinkID=237468 -->
     <section name= "entityFramework"  type= "System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  requirePermission= "false"  />
   </configSections>
   <connectionStrings>
     <add name= "WindowsFormsApplication2.Properties.Settings.myConnectionString"
       connectionString= "Data Source=(local);Initial Catalog=my;Integrated Security=True"
       providerName= "System.Data.SqlClient"  />
   </connectionStrings>

问题是,在<connectionStrings>当中,既然<add>已经在name特性中,引用了上述定义的myConnectionString,那么为什么还要把Settings.settings当中myConnectionString的特性再次写一遍到connectionString这个特性里面?


感觉相同的内容:

C# code

"Data Source=(local);Initial Catalog=my;Integrated Security=True"

在两个文件里面都声明了一遍啊,这算是一种重复吗,还是说这么保存两份相同的逻辑是有意义的?

都是配置文件吧,app.config是在应用时可方便修改配置,一个是应用前要做好配置,感觉是这样。

Settings.setting.cs里标记的是默认值

App.config里储存的是实际值


有一个问题,既然这两个文件都是IDE自动生成,那么岂不是这两个值永远相等?

那么又如何区分所谓的默认值和实际值呢?  


可是在connectionString这个xml tag里面,你说的默认值是它的xml attribute,而你说的实际值是他的xml text,你的意思是说xml text如果为空,那么就用它的xml tag来指定连接字符串?



在app.config里储存的就是实际值,不管它是attribute还是text。默认值是直接嵌入程序集里并且是难以修改的,提供这个值是为app.config丢失时提供备选。


这个app.Config文件的内容,是会在编译的时候被编译进.exe内部呢,还是说,发布程序的时候也要把这个app.Config捎上,否则程序无法正常运行?


小伙,努力提升结贴率吧,app.config编译完后自动生成的,所以你不必纠结这些。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
M9aMEIE19lAW