Microsoft.VisualStudio.Modeling.DomainDataNotFoundException: доменный объект с удостоверением не был найден в каталоге

Я работаю над DSL с помощью DSL Tools в Modeling SDK для Visual Studio 2015.

DSL работает нормально. Проблема возникает, когда я пытаюсь написать некоторые модульные тесты для работы с некоторыми классами, сгенерированными DSL.

Я хочу создать экземпляры некоторых элементов, содержащихся в DSL, а затем протестировать выполнение некоторого кода на них.

у меня есть Feature класс, который является частью DSL. Он генерируется автоматически и наследуется от ModelElement (из 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 ответ

Решение

У вас проблемы с тем, как вы создаете Магазин. Вам необходимо передать класс модели вашего домена, как в следующем примере:

    [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.

Другие вопросы по тегам