2017-05-07 50 views
1

我有當我創建的對象與_fixture = new Fixture {OmitAutoProperties = true};有這樣OmitAutoProperties影響非自動財產

public string Foo 
    { 
     get { return _foo; } 
     set 
     { 
      if (!string.Equals(_foo, value)) 
      { 
       _foo= value; 
       OnPropertyChanged(); 
      } 
     } 
    } 

屬性的類,我希望它是有價值的,但它是空和setter從不打。我想念什麼?

回答

2

這是設計。如文檔所述:

獲取或設置是否在生成匿名對象時通常爲可寫屬性分配值。

換句話說,在AutoFixture,術語自動屬性指AutoFixture該自動填充可寫的屬性的特徵。也許更好的詞將是DoNotAutomaticallyPopulateProperties

我可以理解這個混淆,如在C#中,自動屬性也可以解釋爲Auto-Implemented Properties的含義。

坦率地說,AutoFixture的術語應該更加謹慎地選擇,但是在所有這些年來,我認爲這些都沒有引起我的注意。

具體在OP Foo是可寫屬性,當您禁用自動屬性時,從不調用setter。

1

OmitAutoProperties設置確定是否writable property should be set or not

獲取或設置,如果產生一個匿名對象時可寫的屬性通常應該被分配的值。

所以,如果它是true,AutoFixture 不會嘗試設置任何屬性值,並且是由設計。