2
[DispId(8)]
DateTime MaxDate { [DispId(8)] get; [DispId(8)] set; }
^ 應的查詢和設置有不同的dispid的,因爲他們是兩個不同的功能?或者我應該只修飾一次方法名稱?我怎麼裝飾與DISPID屬性(get和set?都不是?)
感謝,
[DispId(8)]
DateTime MaxDate { [DispId(8)] get; [DispId(8)] set; }
^ 應的查詢和設置有不同的dispid的,因爲他們是兩個不同的功能?或者我應該只修飾一次方法名稱?我怎麼裝飾與DISPID屬性(get和set?都不是?)
感謝,
沒有,屬性只能有一個[DISPID],適用於財產申報。客戶端代碼通過在IDispatch::Invoke()調用中爲wFlags參數傳遞DISPATCH_PROPERTYGET或DISPATCH_PROPERTYPUT來指示是否要調用getter或setter。
這並不是說這是明顯錯誤重複[DISPID]的getter和setter都和Tlbexp.exe支持,它只是沒有多大意義,這樣做的。使用不同的 dispids在技術上是可行的,但幾乎保證使客戶端代碼失敗,因爲它不會期望。