Question

J'ai un modèle de code qui construit des fichiers dans le dossier d'un projet, et utilise les propriétés définies dans les classes partielles pour déterminer les propriétés doivent encore être mises en œuvre. A titre d'exemple:

public partial class Thingy : IThingy
{
    public Foo Bar { get; set; }
}

public interface IThingy
{
    Foo Bar { get; set; }
    Baz Biz { get; set; }
}

et le modèle est censé générer:

public partial class Thingy
{
    Baz Biz { get; set; }
}

Je peux garantir que le modèle génère les informations restant à satisfaire les attentes de l'interface et donc serait même capable de générer la classe, à l'exception des billons de CSharpCodeProvider à l'idée de seulement obtenir la moitié de l'interface implémentée dans le non -generated classe partielle. Est-il possible de dire au fournisseur d'ignorer qu'une interface est mise en œuvre à tous?

EDIT: J'ai donné ce un peu plus pensé, et a figuré une solution sous la forme de lecture en fait la première source dans une chaîne, en supprimant les références d'interface et de lancer la chaîne de code à CompileAssemblyFromSource au lieu de CompileAssemblyFromFile, mais qui se sent super kludgy et sera plus que probablement introduire des bugs. Pensées?

Était-ce utile?

La solution

Vous devez modifier la source pour supprimer la déclaration de mise en œuvre de l'interface, je pense.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top