Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
[mono.git] / mcs / class / System.ComponentModel.Composition / src / Composition.Initialization / System / ComponentModel / Composition / ExportFactoryOfT.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using Microsoft.Internal;\r
6 using System.ComponentModel.Composition.Primitives;\r
7 \r
8 namespace System.ComponentModel.Composition\r
9 {\r
10     public class ExportFactory<T>\r
11     {\r
12         private Func<Tuple<T, Action>> _exportLifetimeContextCreator;\r
13 \r
14         public ExportFactory(Func<Tuple<T, Action>> exportLifetimeContextCreator)\r
15         {\r
16             if (exportLifetimeContextCreator == null)\r
17             {\r
18                 throw new ArgumentNullException("exportLifetimeContextCreator");\r
19             }\r
20 \r
21             this._exportLifetimeContextCreator = exportLifetimeContextCreator;\r
22         }\r
23 \r
24         public ExportLifetimeContext<T> CreateExport()\r
25         {\r
26             Tuple<T, Action> untypedLifetimeContext = this._exportLifetimeContextCreator.Invoke();\r
27             return new ExportLifetimeContext<T>(untypedLifetimeContext.Item1, untypedLifetimeContext.Item2);\r
28         }\r
29     }\r
30 }\r