Класс не реализует интерфейсный член при использовании обобщений

У меня есть общий интерфейс, определенный следующим образом:

interface INewRegionBoarding<T> where T: class
{
    bool Create(T objectName);
    bool ValidateData(T objectName);
}

Затем у меня есть класс, реализующий это:

public class ESafeActionService<T>: INewRegionBoarding<T>
{
    public bool ValidateData(EsafeActons eSafe)
    {
        if (String.IsNullOrEmpty(eSafe.Corporation)) return false;
        if (String.IsNullOrEmpty(eSafe.Region))
        {
            return false;
        }
        else if (eSafe.Region.Length != 2)
        {
            return false;
        }

        return true;
    }

       public bool Create(EsafeActons eSafe)
       {
           return eSafe.Create(eSafe.Corporation, eSafe.Region, eSafe.PortfolioName);
       }
    }

При его создании у меня возникает следующая ошибка:

'ESafeActionService<EsafeActions>' does not implement interface member INewRegionBoarding<EsafeActions>.ValidateData(EsafeActions)'

Это ESafeAction определение класса:

открытый класс EsafeActons {

private string corporation;
private string region;
private string portfolioName;

public EsafeActons(string corporation, string region, string portfolioName)
{
    this.corporation = corporation;
    this.region = region;
    this.portfolioName = portfolioName;
}


public string Corporation
{
    get { return this.corporation; }
    set { this.corporation = value; }
}

public string Region
{
    get{return this.corporation;}
    set { this.region = value; }
}

public string PortfolioName
{
    get { return this.corporation; }
    set { this.portfolioName = value; }
}

public bool Create(string corporation, string region, string portfolioName)
{
    //call stored proc
    return true;
}

}

Я не совсем уверен, что я делаю неправильно.

Спасибо

1 ответ

Я не совсем уверен, что я делаю не так

Вы сохраняете класс универсальным, но реализуете интерфейс с определенным типом. Измените определение своего класса на:

public class ESafeActionService: INewRegionBoarding<EsafeActons>
{
Другие вопросы по тегам