Я хотел бы создать свойство Lazy, которое можно протестировать с помощью инъекции свойства.Если бы я использовал поле «Ленивый», я не понимаю, как бы я смог внедрить свой собственный во время тестирования.Вот мой код:
private IExpensive expensive;
private bool expensiveInitialized;
private object expensiveLockingObject = new object();
public IExpensive Expensive
{
get
{
LazyInitializer.EnsureInitialized(ref expensive, ref expensiveInitialized, ref expensiveLockingObject,
() => new Expensive(myStaticArg1, myStaticArg2, ...));
return expensive;
}
internal protected set
{
expensiveInitialized = true;
expensive = value;
}
}
Мне интересно, есть ли обещание от команды BCL, что этот код является поточно-ориентированным?Это было непонятно из документации .