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

Я работаю над DSL, используя инструменты DSL в пакете SDK моделирования для Visual Studio 2015.

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 не найден в каталоге.

Почему?


person ngm    schedule 19.01.2016    source источник


Ответы (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.

person Hugo Quintela Ribeiro    schedule 20.01.2016