public class FeedComponenet {
public void Write(IWriter writer) {
public interface IBuilder {
public interface IWriter {
public interface IFeedBuilder<TBuilder, TWriter> where TBuilder : IBuilder, new() where TWriter : IWriter, new() {
public class PayFlexElegibilityBuilder<TBuilder, TWriter> : IFeedBuilder<TBuilder, TWriter> where TBuilder : IBuilder, new() where TWriter : IWriter, new() {
private IBuilder builder = new TBuilder();
private IWriter writer = new TWriter();
public void BuildFeed() {
var feedComponent = builder.Build();
feedComponent.Write(writer);
public static void Main()
Console.WriteLine("Hello World");