I got this error
CS1503 C# Argument 1: cannot convert from '
SerieSettings<SeriesLine>
' to 'SerieSettings<ISeries>
'
when I pass a SeriesLine type object as parameter, in this way
GraphLibrary().MultiTypeChart(settings =>
{
settings.AddSeries((SerieSettings<SeriesLine>)(s =>
{
s.Name = "Temperatures";
}));
});
to this method
public class GraphLibrary(){
public GenericChartExtension MultiTypeChart(Action<GenericChartSettings> settings)
{
return new GenericChartExtension(settings);
}
}
where GenericChartExtension and BaseChartSettings are
public sealed class GenericChartSettings : BaseChartSettings<ISeries>
{
}
public sealed class GenericChartExtension : BaseChartExtension<GenericChartSettings>
{
public GenericChartExtension(Action<GenericChartSettings> applySettings) : base(applySettings) { }
public override HtmlString Render()
{
return ChartSettings.Settings.Render();
}
}
derived of BaseChartSettings and BaseChartExtension
public class BaseChartExtension<T>
{
protected readonly T ChartSettings;
public BaseChartExtension(Action<T> applySettings)
{
ChartSettings = (T) Activator.CreateInstance(typeof (T));
applySettings(ChartSettings);
}
//....
public class BaseChartSettings<T> where T : ISeries
{
public void AddSeries(SerieSettings<T> s) { Settings.AddSeries(s); }
SerieSettings is a delegate
public delegate void SerieSettings<V>(V s);
and SeriesLine is a derived of ISeries
public class SeriesLine: ISeries