Essayez de compiler du code C# avec la méthode RepositoryType()
qui est décrit ici http://sparxsystems.com/enterprise_architect_user_guide/13.0/automation/repository3.htmlC# et Sparx EA Interop lib - méthode introuvable
Et je suis arrivé cette erreur
Erreur CS1061 'référentiel' ne ne contient pas de définition pour 'RepositoryType' et aucune méthode d'extension 'RepositoryType' acceptant un premier argument de type 'Repository' n'a été trouvée (manque-t-il une directive using ou une référence d'assembly?)
J'ai essayé de nettoyer/reconstruire toutes les choses, mais cela ne fonctionne pas. De plus, pendant l'exécution, l'appel semble bien - renvoie la chaîne.
Ce qui pourrait aider?
UPD:
usings et rendez-
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using EA;
using MSScriptControl;
public class SparxEaDocGenScriptRunner
{
private MSScriptControl.ScriptControl _msScriptControl;
private EA.Repository _repository;
private string _language;
private string _databaseType;
private Regex _eaLanguageDeterm;
private Regex _getExtFromName;
private IDictionary<string, string> _languageExts;
/// <summary>
/// Add-in logger accessor.
/// </summary>
private ApplicationLogger _logger;
public SparxEaDocGenScriptRunner(Repository repository, ApplicationLogger logger)
{
_repository = repository;
_logger = logger;
var connectionString = _repository.ConnectionString;
var type = _repository.RepositoryType();
}
//...
}
Et son injecté toute façon de cette partie de code, permet de dire Main.cs
:
public void EA_MenuClick(EA.Repository Repo, string Location, string MenuName, string ItemName)
{
switch (ItemName)
{
case MENU_DOC_GEN:
#region Logging Statement
Logger.Write(new LogEntry
{
Severity = TraceEventType.Information,
Message = "Loading Document Generator",
Categories = new[] { ApplicationConstants.DocumentGeneratorLogCategory }
});
#endregion
DocumentGenerator docgen = new DocumentGenerator(Repo);
docgen.ShowDialog();
break;
case MENU_ABOUT:
new AboutBox().Show();
break;
}
}
UPD2:
Ma version EA.Interop.dll
:
quel cadre ciblez-vous? (Si vous ciblez un cadre de profil client, essayez de cibler le profil non-client.) – Mart10
@Hue pardon? Que veux-tu dire par là? Il y a seulement un 'EA.Interop.dll' que j'utilise là – DanilGholtsman
faites un clic droit sur votre projet -> propriétés. Qu'est-ce qui apparaît sous le cadre Target? – Mart10