Domanda

Ho un modello di codice che crea file nella cartella di un progetto e utilizza le proprietà definite nelle classi parziali per determinare quali proprietà devono ancora essere implementate. Come esempio:

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

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

E il modello dovrebbe generare:

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

Posso garantire che il modello genererà le informazioni rimanenti per soddisfare le aspettative dell'interfaccia e quindi sarebbe persino in grado di generare la classe, ad eccezione del csharpCodeProvider Balks alla nozione di ottenere solo metà dell'interfaccia implementata nel parziale non generato parziale classe. C'è un modo per dire al fornitore di ignorare che viene implementata un'interfaccia?

MODIFICARE: Ho pensato un po 'più e ho pensato a una soluzione alternativa sotto forma di leggere prima la sorgente in una stringa, rimuovendo i riferimenti dell'interfaccia e lanciando la stringa di codice a CompileAssemblyFromSource invece di CompileAssemblyFromFile, ma sembra super kludgy e molto probabilmente introdurrà bug. Pensieri?

È stato utile?

Soluzione

È necessario modificare la fonte per rimuovere la dichiarazione di implementazione dell'interfaccia, credo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top