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