尝试使用此处描述的方法RepositoryType()
编译C#代码
http://sparxsystems.com/enterprise_architect_user_guide/13.0/automation/repository3.html
错误CS1061'Repository'不包含'RepositoryType'的定义,也没有扩展方法'RepositoryType'接受类型'Repository'的第一个参数(你是否缺少using指令或汇编引用?)< / p>
我试图清理/重建所有东西,但它无法正常工作。此外,在运行时调用期间看起来很好 - 返回字符串。
有什么用呢?
UPD:
使用和转让
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();
}
//...
}
它从代码的这一部分注入了所有内容,比如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:
我的EA.Interop.dll
版本:
答案 0 :(得分:1)
我写信支持,参考我的问题,得到了我的答案:)这真的很有帮助。我又太粗心了。
嗨Danil,
感谢您的询问。
您可能正在引用旧版本的 EA.Interop.dll文件尚未包含此功能。我们可以 在屏幕截图中看到您正在引用此Interop DLL 在“C:\ Users \ temp1 ...”下的某个地方。
请注意,EA.Interop.dll文件的版本号没有 在EA版本之间进行更新,通常看起来更有用 在文件的创建/修改时间戳上。什么是时间戳 在您正在引用的Interop DLL文件和您的 目前的EA安装目录? (默认:C:\ Program Files(x86)\ Sparx 系统\ EA)
我建议您更改直接指向的引用 来自当前EA安装的DLL,或复制当前版本 从您的EA安装目录中覆盖您的位置 dll正在引用。
致以最诚挚的问候,
Aaron Bell
Sparx Systems Pty Ltd
support@sparxsystems.com
好吧,所以我重新安装了Sparx EA,从安装文件夹中复制了.dll,它确实有效!