Here is the solution I came up with. Just add each processor to a collection and then iterate over that collection to build the chain, and to process the chain, simply call this.Links[0].Process(request);
#region Build Chain Collection;
this.Links = new List<FieldProcessor>()
{
new StudentEnrollmentDetailsProcessor(),
new SprocObject()
};
#endregion;
#region Build Chain Dynamically
for (int i = 0; i < this.Links.Count(); i++)
{
if (i < this.Links.Count())
{
this.Links[i].SetNext(this.Links[i + 1]);
}
}
#endregion;