2016-02-23 2 views
-1
[ConfigurationProperty("Name", DefaultValue = "test")] 
public string Name 
{ 
    get { return (string)this["Name"]; } 
    set { this["Name"] = "Ram"; } 
} 

CorticonConfig config = new CorticonConfig(); 
string test = config.Name; 

У меня есть свойство с «Name», а также я устанавливаю значение name.While, я пытаюсь получить значение, я получаю значение по умолчанию.Конфигурация DefaultValue Behaviors

Мой вопрос: можем ли мы установить значение свойства, как указано выше?

И каково поведение свойства Default?

+0

Возможный дубликат http://stackoverflow.com/questions/10506323/canonical-example-of-configurationproperty –

+0

класса Config { \t [ConfigurationProperty ("Name", DefaultValue = "тест")] \t общественности строки Имя \t { get {return (string) this ["Name"]; } set {this ["Name"] = "Ram"; }} \t } Класс SetValue { \t общественного недействительными SetValue() { \t \t CorticonConfig конфигурации = новый CorticonConfig(); \t config.Name = "test"; \t}} Класс Присутствует { \t общественного недействительными GetValue() \t { \t \t CorticonConfig конфигурации = новый CorticonConfig(); \t \t string test = config.Name; \t} } –

+0

Здесь я получаю значение по умолчанию. –

ответ

0

Ваш настройщик недвижимости не работает, как вы думаете, он работает.

set часть выполнена при установке свойства (вы делаете property = something), и в этом случае, ваш something бы на value ключевое слово.

Так что в вашем случае, если вы:

CorticonConfig config = new CorticonConfig(); 
config.Name = "whatever"; 
string test = config.Name;  

test будет "Ram", потому что вы всегда asigning этого значения, но оно не будет выполнять этот код, если вы не делаете config.Name = <something>.

Правильный способ иметь сеттер, как это было бы:

set 
    { 
    this["Name"] = value; 
    } 

А если вам нужно значение по умолчанию, кроме того, вы устанавливаете на свой атрибут, применять его после построения объекта:

CorticonConfig config = new CorticonConfig(); 
config.Name = "Ram"; 

DefaultValue Передача атрибута дает значение по умолчанию, если никакие настройки не были сохранены, поэтому когда вы его прочитаете, он вернет это.

+0

Спасибо за быстрый ответ. Однако, почему я получаю значение по умолчанию? –

+0

Я отредактировал свой ответ, так как неправильно понял ваш начальный вопрос – Jcl

+0

Привет, Я установил значение для свойства Name (Config.cs) в некоторых других cs (SetValue.cs), а затем восстановить в present.cs, но я получаю оценку по умолчанию. –

Смежные вопросы