J'essaie de mettre en œuvre une interface IDescription. Le but de base de cette interface est d'avoir plusieurs classes différentes qui ont une liste de descriptions multilingues et je veux que la base de données AddDescription EditDescription et d'autres comportements basiques soient définis par l'interface et non implémentés individuellement par les classes qui héritent de l'interface. J'essaye d'assigner le comportement à l'interface en utilisant des méthodes d'extension.Interface IDescription utilisant des génériques et des méthodes d'extension
J'ai des blocs de route tels que comment accéder à la collection de descriptions de l'entité que je transmets à l'interface IDescription (entity.Descriptions.Add)?
Je suis très nouveau pour les génériques, les méthodes d'extension, les types anonymes, etc, alors s'il vous plaît supportez-moi avec mes malentendus sur la façon dont ils sont utilisés. Appréciera si vous pouvez m'aider à corriger le code ci-dessous. Je l'ai écrit pour donner l'idée de ce que j'essaie de réaliser, c'est évidemment des erreurs fondamentales. Merci
public class Company : IDescription<Company, CompanyDescription>
{
public IList<CompanyDescription> Desriptions { get; set; }
}
public class Location : IDescription<Location, LocationDescription>
{
public IList<LocationDescription> Desriptions { get; set; }
}
public interface IDescription<eT, dT>
{
void AddDescription(eT, string text);
void EditDescription(eT, dT, string text);
}
public static DescriptionInterfaceExtensions
{
public static void AddDescription(this IDescription<eT, dT> description, eT entity, string text)
{
dT newDescription = new dT(text);
entity.Descriptions.Add(newDescription);
}
}
c'est exactement ce que je demandais, je vous remercie de votre temps – kaivalya
Il un problème que je Je rencontre ici: La raison pour laquelle j'ai LocationDescription et CompanyDescription est parce que j'ai des propriétés sur chacune de ces classes qui les relie au parent, par exemple: La classe CompanyDescription possède la propriété Company du type Company et LocationDescription a la propriété Location du type Location. Comment puis-je inclure ces propriétés à cette approche. J'ai besoin de définir ces propriétés mais comme nous travaillons avec IDescription, je n'ai pas accès à ces propriétés. J'ai des implémentations de sous-classes de béton séparées parce que j'utilise nhibernate comme ORM. J'ai pensé à faire – kaivalya
IDescription aussi générique mais je pense que ça ne marchera pas bien avec nhibernate mapping ... – kaivalya