1
我有一個FormDialog有LUIS entities bound to the state。Microsoft Bot Framework FormFlow - 覆蓋[可選]屬性?
public abstract class AbstractFormDialog
{
[Optional]
public string Entity1;
[Optional]
public string Entity2;
[Optional]
public string Entity3;
[Optional]
public string Entity4;
[Optional]
public string Entity5;
}
在AbstractFormDialog的一個子類,我希望能夠說一些實體的需要,使「不優先」是不是一種選擇。類似於
public abstract class FormDialog1 : AbstractFormDialog
{
[Required]
public string Entity1;
[Required]
public string Entity2;
}
有沒有人知道這是可能的?當然,我可以在基類中創建所有屬性,然後在每個擴展它的類中列出哪些實體實際上是可選的。但是這種設計很糟糕,因爲如果要添加新的實體,每個子類都需要更新。
取決於如何從反射中讀取屬性。如果它使用實際的'AbstractFormDialog'類型讀取數據,那麼可能沒有什麼可以做的。如果它獲取基於實例的屬性,則可以改爲創建字段屬性並覆蓋它。除此之外,你可以看看是否檢查屬性也檢查「TypeDescriptor」http://stackoverflow.com/questions/12143650/how-to-add-property-level-attribute-to-the-typedescriptor-at-運行 – TyCobb