Hi Kannan, Your inheritance approach seems fine. I have the following things that you can ponder about: 1) Isn't the user's call to a setter a little backwards? Another approach is just to require a getter from the user's concrete class e.g.
public abstract class LibSetting
{
public abstract int MaxCount { get; }
}
Furthermore, you could supply the user with good default settings e.g.
public abstract class LibSetting
{
/// <summary>
/// Default set to 100.
/// /// Don't call base when you override this.
/// <summary/>
public virtual int MaxCount
{
get { return 100; }
}
}
Hope it makes sense... Regards, Keld Ølykke