Итак, если мое понимание верно, вы хотите иметь возможность внедрить любой IEntityContext, доступный для вашего экземпляра MyEntitySet?
[Export(typeof(IEntitySet<MyEntity>))]
public class MyEntitySet : IEntitySet<MyEntity>
{
[ImportingConstructor]
public MyEntitySet(IEntityContext context)
{
}
}
Учитывая, что вы затем хотите насмехаться над IEntityContext?Если это так, вы можете сделать следующее:
var contextMock = new Mock<IEntityContext>();
var setMock = new Mock<IEntitySet<MyEntity>>();
contextMock
.Setup(m => m.GetEntitySet<MyEntity>())
.Returns(setMock.Object);
Container.ComposeExportedValue<IEntityContext>(contextMock.Object);
var context = Container.GetExportedValue<IEntityContext>();
var entitySet = context.GetEntitySet<MyEntity>();
(используется Moq)
Вы можете использовать существующую инфраструктуру CompositionContainer, добавив экспортированное значение.
Делает ли этопомочь вообще?Извините, не совсем понятно, что вы пытаетесь сделать ...