Programmatically adding and removing of a custom SharePoint Event Receiver.
Event Receiver class
Sample class definition
public class SequenceFieldItemEventReceiver : SPItemEventReceiver { #region Methods public override void ItemAdded(SPItemEventProperties properties) { // set sequence value in every sequence field var sequenceFields = properties.List.Fields.Cast<SPField>().Where(f => f.GetType().Name.Equals("SequenceFieldType")); foreach (var sequenceField in sequenceFields.Cast<SequenceFieldType>()) { sequenceField.SetSequenceValue(properties.ListItem); } } }
Add
In this example the event receiver class is located in the current executed assembly.
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, Assembly.GetExecutingAssembly().FullName, "YourNamespace.Fields.SequenceFieldItemEventReceiver"); list.Update();
Remove
Removing of the event receiver that has been attached to a list.
var eventReceivers = list.EventReceivers.Cast<SPEventReceiverDefinition>().Where(r => r.Class.Equals("YourNamespace.Fields.SequenceFieldItemEventReceiver")).ToArray(); // there should be only one event receiver, but to get sure we will use the collection for (int i = 0; i < eventReceivers.Length; i++) { eventReceivers[i].Delete(); }