Вы должны включить флажок «Regex» и ввести правильное регулярное выражение в поле поиска, вот и все. Если я правильно понял, для ваших примеров правильные запросы будут test.*6
и .*test.*6
соответственно.
Прием должен удостовериться каждый профиль, по крайней мере, как правило, определенное в нем. Если Вы не укажете правило (configA), то оно не будет создавать/видеть профиль.
Учитывая эти классы:
public interface IFoo { string SayHello(); }
public class Foo : IFoo { public string SayHello() { return "Hello"; } }
public class SpecialFoo : IFoo { public string SayHello() { return "Hello Special"; } }
public interface IBar { }
public class Bar : IBar { }
public interface IDummy { }
public class Dummy : IDummy{ }
Можно определить этот реестр:
public class MyRegistry : Registry
{
protected override void configure()
{
ForRequestedType<IBar>().TheDefault.Is.OfConcreteType<Bar>();
ForRequestedType<IFoo>().TheDefault.Is.OfConcreteType<Foo>();
CreateProfileNotEmpty("configA");
CreateProfileNotEmpty("configB")
.For<IFoo>().UseConcreteType<SpecialFoo>();
}
StructureMap.Configuration.DSL.Expressions.ProfileExpression CreateProfileNotEmpty(string profile)
{
return CreateProfile(profile)
.For<IDummy>().UseConcreteType<Dummy>();
}
}
И это будет работать с этими тестами:
[TestMethod]
public void TestMethod1()
{
var container = new Container(new MyRegistry());
Assert.IsNotNull(container.GetInstance<IBar>());
Assert.AreEqual("Hello", container.GetInstance<IFoo>().SayHello());
container.SetDefaultsToProfile("configB");
Assert.IsNotNull(container.GetInstance<IBar>());
Assert.AreEqual("Hello Special", container.GetInstance<IFoo>().SayHello());
container.SetDefaultsToProfile("configA");
Assert.IsNotNull(container.GetInstance<IBar>());
Assert.AreEqual("Hello", container.GetInstance<IFoo>().SayHello());
}
при замене CreateProfileNotEmpty простым CreateProfile он перестанет работать на строке, которая устанавливает значение по умолчанию на configA.
Посмотрите это видео, он показывает другой способ создания профиля "по умолчанию" и использования других именованных профилей, которые будут действовать как варианты.