ExportFactory<T> Class
Creates new instances of a part that provides the specified export.
System.ComponentModel.Composition.ExportFactory<T>
System.ComponentModel.Composition.ExportFactory<T, TMetadata>
Namespace: System.ComponentModel.Composition
Assembly: System.ComponentModel.Composition.Initialization (in System.ComponentModel.Composition.Initialization.dll)
The ExportFactory<T> type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | CreateExport | Creates an instance of the factory's export. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
When using an indirect reference to a part via a Lazy<T> object, the Value property always returns a reference to the same object. In some circumstances, this is not desirable, and you would like each reference to result in the creation of a new object. ExportFactory<T> is designed for those scenarios.
ExportFactory<T> can be used in a similar fashion to Lazy<T> when creating attributed parts. That is, an import contract defined on ExportFactory<T> with a generic parameter of T will match an export defined on T. For example, the follow export and import match:
[Export] public String myData = "Example Data."; [Import] public ExportFactory<String> theData { get; set; }
The value returned from the CreateExport method is an ExportLifetimeContext<T> object, which has two pieces. The Value property provide access to the created part. Calling the Dispose method of the ExportLifetimeContext<T> object will clean up the created part and all of its dependencies, allowing its lifetime to be managed without reference to the container that created it.
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

