Shared workflow configuration with shared interfaces

We recently encountered a problem in our data collection program. We use common interfaces to have a common workflow that is easily configured for different data inputs through specific implementations in the configuration. A recent fix for a missing data error is generally as follows:

[TestFixture]
internal class GenericsTest
{
    [Test]
    public void Config()
    {
        new Collector(new Search());
    }
    internal class Collector
    {
        public Collector(Clues<Where, What> foo)
        {

        }
    }
    internal interface Clues<T, P>
    {

    }
    internal class Search : Clues<Where, Item>
    {

    }
    internal class Where
    {

    }
    internal class Item : What
    {

    }

    internal interface What
    {

    }

}

. Collector Where interface What as parameters. , Clues Where Item, What. , .

Error   CS1503  Argument 1: cannot convert from 'UnitTest.GenericsTest.GenericsTest.Search' to 'UnitTest.GenericsTest.GenericsTest.Clues<UnitTest.GenericsTest.GenericsTest.Where, UnitTest.GenericsTest.GenericsTest.What>'

, .

, , config . , .

#?

+4
1

Clues

: ,

internal interface Clues<T, out P>

Edit

, , Collector :

internal class Collector<TWhere,TWhat> where TWhere:Where where TWhat:What
{
    public Collector(Clues<TWhere, TWhat> foo)
    {

    }
}

, :

public void Config()
{
    new Collector<Where,Item>(new Search());
}
+3

Source: https://habr.com/ru/post/1678185/


All Articles