Microsoft.VisualStudio.Modeling.DomainDataNotFoundException:在目录

时间:2016-01-19 23:38:54

标签: c# dsl-tools

我正在使用Visual Studio 2015 Modeling SDK中的DSL工具开发DSL。

DSL工作正常。问题出现在我正在尝试编写一些单元测试来处理DSL生成的一些类。

我想创建DSL中包含的一些元素的实例,然后测试在它们上运行一些代码。

我有一个Feature类,它是DSL的一部分。它是自动生成的,并且继承自ModelElement(来自Modeling SDK)。我想创建它的一个实例并对其进行一些测试。它的构造函数需要一个Store对象(同样来自Modeling SDK)。

我有以下内容:

using (var store = new Store())
using (var transaction = store.TransactionManager.BeginTransaction("create model"))
{
    var rootFeature = new Feature(store);
    // Do something with rootFeature...
}

然而这是在扔:

  

Microsoft.VisualStudio.Modeling.DomainDataNotFoundException:在目录中找不到具有标识DSL.Feature的域对象。

怎么回事?

1 个答案:

答案 0 :(得分:1)

您在创建商店时遇到问题。您需要传入域模型类,如以下示例所示:

    [TestMethod]
    public void TestMethod1()
    {
        using (Store store = new Store(typeof(EntitiesModel3DomainModel)))
        {
            using (Transaction trans = store.TransactionManager.BeginTransaction())
            {
                Entity entity = new Entity(store);
                Assert.IsNotNull(entity);
            }
        }
    }

这里的EntitiesModel3DomainModel是我拥有的DSL的域模型。 您需要将它替换为您自己的类,由DomainModel.tt生成。