Cannot implicitly Convert type

Asked

Viewed 55 times

0

I am in error in instantiating the service. It is generic and I need it so, because I can use any entity in it. When I start the service in Hibernate, I need to pass the entity I will work to use the bank mapping. That is, when I install the service passing Tipodocumento or Document, it uses the mapping of the entity Tipodocumento or Document. I will only use methods and properties of the parent entity, I just need to use the daughter class to access the mapping of the right table that I will search. on normal screens, I overwrite the methods passing the entity I need, but on the search screen, I need to do everything on the same screen, because it is impossible to make a screen for each search

Cannot implicitly Convert type 'Servicocadastromestre' to 'Servicocadastro'

public class TipoDocumento : CadastroMestre
{
}

public class ServicoCadastroMestre<T> : ServicoCadastro<T> where T : CadastroMestre
{
}

public abstract class ViewCadastroMestre<T> : ViewCadastro<T> where T : CadastroMestre
{
    public abstract ServicoCadastro<T> GetServico();

    public abstract T GetEntidade();
}

public class ViewPesquisa : ViewCadastroMestre<CadastroMestre>
{
    public override CadastroMestre GetEntidade()
    {
        return new TipoDocumento();
    }

////o problema está aqui    
public override ServicoCadastro<CadastroMestre> GetServico()
    {
        return new ServicoCadastroMestre<TipoDocumento>();
    }
}

///////aqui funciona normalmente///////
public class ViewTipoDocumento : ViewCadastroMestre<TipoDocumento>
{
    public override TipoDocumento GetEntidade()
    {
        return new TipoDocumento();
    }
 
    public override ServicoCadastro<TipoDocumento> GetServico()
    {
        return new ServicoCadastroMestre<TipoDocumento>();
    }
}    

  • and return new ServicoCadastro<TipoDocumento>(); works ?

  • makes the same mistake. Servicocadastromestre inherits from Servicocadastro, which is abstract... but I have tested take of abstract and instantiation it, but from the same error...

  • maybe it was the case to use an interface.

  • não visualizei...&#xA;&#xA;o problema está em passar TipoDocumento em return new ServicoCadastroMestre<TipoDocumento>(); onde é esperado CadastroMestre em ServicoCadastro<CadastroMestre>&#xA;&#xA;public override ServicoCadastro<CadastroMestre> GetServico()&#xA; { Return new Service

  • I don’t think that’s possible. in generic interfaces you can even use the concepts of covariance and countervariance, but in types like this, you would have to have an explicit conversion and I believe you will have problems converting a more specific type into a less specific type.

  • really couldn’t. as I came from Delhi, I think he is much more open to inheritances. because of that, I needed to do a lot of error treatment. no c#, no need to treat anything. thanks for the help

Show 1 more comment
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.