Полагаю, вы не хотите дублировать код?
Вместо объекта почему бы не использовать SPRoleAssignmentCollection
?
AssignRole(string spWebUrl, SPRoleAssignmentCollection spAssignmentCollection,
SPUser oUser, string spRoleDefinition);
И вы вызываете функцию как
AssignRole(spWebUrl, spObject.RoleAssignments, oUser, spRoleDefinition);
вместо вашего предполагаемого
AssignRole(spWebUrl, spObject, oUser, spRoleDefinition);
Если вы действительно хотите передать объект, у вас есть по крайней мереследующие параметры
- используют ключевое слово
is
- , используют методы GetType и TypeOf для сравнения идентификаторов типов.
В качестве примера использованияиз вышеупомянутых двух, а также их различие, см .: http://bytes.com/topic/c-sharp/answers/641093-difference-between-gettype-typeof-class
Я бы не советовал иметь такой метод.
Что мешает пользователям метода передавать в List?Теперь вам понадобится исключение, которое выдается (или возвращаемое значение) при передаче в недопустимый объект.
Кроме того, что произойдет, если sharepoint добавит новые объекты, которым могут быть назначены роли?Если вы уже отправили этот код многим клиентам, вы бы отправили обновление?
Надеюсь, это поможет.Удачи!