次のようなコードで、機能レシーバーのFeatureActivatedメソッドをオーバーライドします。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb web = (SPWeb)properties.Feature.Parent;
SPList list = web.GetList(web.Url + "/Lists/MyList");
SPRoleDefinition roleDef = new SPRoleDefinition();
roleDef.BasePermissions = SPBasePermissions.DeleteListItems
| SPBasePermissions.AddListItems
| SPBasePermissions.EditListItems;
roleDef.Description = "Custom permissions deployed by feature";
roleDef.Name = "Contribute-Delete";
web.RoleDefinitions.Add(roleDef);
roleDef = web.RoleDefinitions[roleDef.Name];
SPMember owner = web.SiteUsers[@"Domain\username"];
SPUser user = web.SiteUsers[@"Domain\username"];
web.SiteGroups.Add("Contribute-Delete",owner, user,"A group for contribute delete access");
SPGroup ContributeDeleteGroup = web.SiteGroups["Contribute-Delete"];
SPRoleAssignment roleAssignment = new SPRoleAssignment(ContributeDeleteGroup);
roleAssignment.RoleDefinitionBindings.Add(roleDef);
list.BreakRoleInheritance(true);
list.RoleAssignments.Add(ContributeDeleteGroup);
}