Salve a tutti.
Stavo creando un addIn di VisualStudio: una nuova voce nel menu SolutionExplorer che consente di creare dinamicamente una classe .cs ed aggiungerla al processo corrente.
Mi va sempre in errore: vorrei capire se è un errore applicativo o perchè magari in debug (o quant'altro) una cosa del genere non funziona...
Il metodo che uso è questo:
internal String GenerateProxy(DTE ApplicationObject, Configurazione Config, ProgressBar Avanzamento)
{
try
{
ProjectComponentsManager projMan = new ProjectComponentsManager();
// metodo che crea il codice da aggiugere al file .cs
String Code = GetAppDataProcessCode(Config);
if (Code != null || Code != String.Empty)
{
// metodo che crea il nome della classe
string NomeClasse = GetClassNameFromCodeString(Code);
// *** QUI VA IN ERRORE ***
System.Array solutionProjects = ApplicationObject.DTE.ActiveSolutionProjects as System.Array;
Project project = (Project)solutionProjects.GetValue(0);
projMan.AddClassToProject(project, Code, NomeClasse);
AvanzaProgressBar(Avanzamento, 20);
[..]
}Va in errore alla riga:
System.Array solutionProjects = ApplicationObject.DTE.ActiveSolutionProjects as System.Array;
con il più classico dei: "Object reference not set to an instance of an object".
E' la prima volta che smandruppo con gli AddIn e con la classe DTE...
Qualcuno può aiutarmi?
Grazie!