Прошло много времени с тех пор, как этот вопрос был опубликован, но я сталкивался с ним, пытаясь понять то же самое, и, похоже, я что-то придумал.
Я сделал это, используя Intercept.NewInstanceWithAdditionalInterfaces.
В моем примере ниже я хочу, чтобы Unity создал экземпляр не определенного класса, реализующего IUserDao. Все, что я хочу, чтобы экземпляр этого класса, созданного Unity, был определен в RetrieveSavedResultBehavior.
IUserDao userDao = (IUserDao)(Intercept.NewInstanceWithAdditionalInterfaces<Object>(
new VirtualMethodInterceptor(),
new List<IInterceptionBehavior>(){new RetrieveSavedResultBehavior()},
new List<Type>() { typeof(IUserDao) }
));
Вы можете проверить мой пост по этой теме здесь