我想从ItemUpdating事件接收器中的properties.AfterProperties
(或列表项)中读取用户字段值,并获取SPUser
(或至少一个SPFieldUserValue
)对象,以便我试过了:
var fldValue = properties.AfterProperties[fldName] ?? properties.ListItem[fldName];
result = (SPFieldUserValue)fldValue;
一个例外通知我,我无法从string
投射到SPFieldUserValue
。调试确认字段值类型为字符串。
在这种情况下,用户字段在列表模式中声明为Type="User"
,同一列表中的其他用户字段声明为Type="UserMulti"
,对于那些字段值是类型SPFieldUserValueCollection
...
现在我想知道这是否是sharepoint处理用户字段的方式,或者这只是一个错误配置的vm中的错误? 因为以不同方式处理单个和多个用户字段并不是那么糟糕,我只需要知道我是否可以依赖这些类型的字段值: 单个用户字段 - >字符串和多用户字段 - > SPFieldUserValueCollection?