Programming 笔记

工作中遇到的问题就记载这里

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Today my code suddenly give this error if when I try to access setting in my program.

Some people said I need to put my namespace before Properties.Settings

so it would be <namespace>.Properties.Settings.

 

I tried to do that but my name space does not contain "Properties". So I checked the generated code under Properties-->Settings.Settings-->Settings.Designer.cs, I can see the setting class do use namespace "<namespace>.Properties", like below

namespace Shopping.Properties {
    
    
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

  

I finally foind the root cause, It have been caused by a class it is using same name of the namespace, in my job, a class name is "Shopping" and its namespace name is also "Shopping". So it is sort of collision to Framework. 

 

After I renamed Shopping class to something else, the issue is fixed.

 

Following article from Eric Lippert’s Blog should be helpful. 

Do not name a class the same as its namespace

http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace-part-one.aspx

posted on 2013-08-30 11:13  IT 笔记  阅读(1126)  评论(0编辑  收藏  举报