Part 2 - Array Configuration



So welcome to part 2, today we're going to look at some more config - this time it's arrays...



So we have a class, that tells us when we can down tools and go to the beach...


public class HolidayService
{
private DateTime[] _holidays;

public DateTime[] Holidays
{
get
{
return _holidays;
}
set { _holidays = value; }
}

public bool IsHoliday(DateTime date)
{
if (_holidays != null)
{
DateTime matchDate = date.Date;
foreach (DateTime test in Holidays)
{
if (test.Date.Equals(matchDate))
{
return true;
}
}
}

return false;
}
}



We can set the days we are allowed off by adding dates to the holidays array...



So lets look at our code for running this service:


internal class Program
{
private static void Main(string[] args)
{
WindsorContainer container = new WindsorContainer(new XmlInterpreter());

HolidayService holidayService = container.Resolve();

DateTime xmas = new DateTime(2007, 12, 25);
DateTime newYears = new DateTime(2008, 1, 1);

if (holidayService.IsHoliday(xmas))
Console.WriteLine("merry xmas!");
else
Console.WriteLine("xmas is only for management!");

if (holidayService.IsHoliday(newYears))
Console.WriteLine("happy new year");
else
Console.WriteLine("new year, you haven't done all the work for last year!");

Console.Read();
}
}



The service configuration is just like last time, we have the component registered with no parameters... so if we run the program we shall see on the screen:



xmas is only for management!

new year, you haven't done all the work for last year!


Mum will be dissapointed, she'd done a roast 'n all... so lets get some configuration in their so we can have a few days off...




type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />





2007-12-24
2007-12-25
2008-1-1








Now let's see if we're going to have a merry xmas and a happy new year - a quick run of our application....



merry xmas!

happy new year



You don't just have to use arrays either, you can do lists too - though I didn't show them here, just use list instead of array in the xml configuration...


See you for part 3 where we do dictionary configurations.
Written on April 17, 2007