1
// -----------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -----------------------------------------------------------------------
5 using System
.ComponentModel
.Composition
.Primitives
;
6 using System
.Globalization
;
7 using Microsoft
.Internal
;
8 using System
.Collections
.Generic
;
10 namespace System
.ComponentModel
.Composition
12 partial class ExportServices
14 private sealed class DisposableLazy
<T
, TMetadataView
> : Lazy
<T
, TMetadataView
>, IDisposable
16 private IDisposable _disposable
;
18 public DisposableLazy(Func
<T
> valueFactory
, TMetadataView metadataView
, IDisposable disposable
)
19 : base(valueFactory
, metadataView
)
21 Assumes
.NotNull(disposable
);
23 this._disposable
= disposable
;
26 void IDisposable
.Dispose()
28 this._disposable
.Dispose();
32 private sealed class DisposableLazy
<T
> : Lazy
<T
>, IDisposable
34 private IDisposable _disposable
;
36 public DisposableLazy(Func
<T
> valueFactory
, IDisposable disposable
)
39 Assumes
.NotNull(disposable
);
41 this._disposable
= disposable
;
44 void IDisposable
.Dispose()
46 this._disposable
.Dispose();