CompositionContainer Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Parçaların bileşimini yönetir.
public ref class CompositionContainer : System::ComponentModel::Composition::Hosting::ExportProvider, IDisposable, System::ComponentModel::Composition::ICompositionService
public class CompositionContainer : System.ComponentModel.Composition.Hosting.ExportProvider, IDisposable, System.ComponentModel.Composition.ICompositionService
type CompositionContainer = class
inherit ExportProvider
interface ICompositionService
interface IDisposable
Public Class CompositionContainer
Inherits ExportProvider
Implements ICompositionService, IDisposable
- Devralma
- Uygulamalar
Örnekler
Aşağıdaki örnekte, bir CompositionContainer nesne bir katalogla başlatılır ve bir bölümün içeri aktarmalarını doldurmak için kullanılır. Bu örnekte Öznitelikli Programlama Modeli kullanılır.
[Export]
class MyAddin
{
public String myData { get { return "The data!"; } }
}
class MyProgram
{
[Import]
public MyAddin myAddin { get; set; }
}
class Program
{
static void Main(string[] args)
{
AggregateCatalog catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyAddin).Assembly));
CompositionContainer _container = new CompositionContainer(catalog);
MyProgram myProgram = new MyProgram();
_container.SatisfyImportsOnce(myProgram);
Console.WriteLine(myProgram.myAddin.myData);
Console.ReadLine();
_container.Dispose();
}
}
<Export()>
Public Class MyAddin
Public ReadOnly Property theData As String
Get
Return "The Data!"
End Get
End Property
End Class
Public Class MyProgam
Private _MyAddin As MyAddin
<Import()>
Public Property MyAddinProperty As MyAddin
Get
Return _MyAddin
End Get
Set(ByVal value As MyAddin)
_MyAddin = value
End Set
End Property
End Class
Sub Main()
Dim catalog As AggregateCatalog = New AggregateCatalog()
catalog.Catalogs.Add(New AssemblyCatalog(GetType(MyAddin).Assembly))
Dim container As CompositionContainer = New CompositionContainer(catalog)
Dim theProgam As MyProgam = New MyProgam()
container.SatisfyImportsOnce(theProgam)
Console.WriteLine(theProgam.MyAddinProperty.theData)
Console.ReadLine()
container.Dispose()
End Sub
Açıklamalar
Bir CompositionContainer nesne, bir uygulamada iki önemli amaca hizmet eder. İlk olarak, birleştirme için hangi parçaların kullanılabilir olduğunu ve bağımlılıklarının ne olduğunu izler ve kullanılabilir parça kümesi her değiştiğinde birleştirme gerçekleştirir. İkinci olarak, uygulamanın oluşturulan parçaların örneklerini aldığı veya birleştirilebilir parçanın bağımlılıklarını doldurduğu yöntemleri sağlar.
Önemli
Bu tür arabirimini IDisposable uygular. Türünü kullanmayı bitirdiğinizde, doğrudan veya dolaylı olarak atmalısınız. Türü doğrudan atmak için yöntemini bir try
/catch
blok içinde çağırın.Dispose Bunu dolaylı olarak atmak için (C#'de) veya Using
(Visual Basic'te) gibi using
bir dil yapısı kullanın. Daha fazla bilgi için arabirim konusunun "IDisposable Uygulayan Bir Nesne Kullanma" bölümüne IDisposable bakın.
Parçalar doğrudan veya özelliği aracılığıyla kapsayıcıya Catalog kullanılabilir hale getirilebilir. Bunun ComposablePartCatalog içinde bulunabilen tüm parçalar, doğrudan eklenen tüm parçaların yanı sıra içeri aktarmaları gerçekleştirmek için kapsayıcı tarafından kullanılabilir.
yöntemi, Compose örneklenmiş parçaların var olan bir kapsayıcıya eklenmesini sağlar. Birleştirmenin başarılı olduğunu varsayarsak, bu parçaların içeri aktarmaları kapsayıcıdan alınan parçalarla doldurulur ve dışarı aktarmaları diğer parçalar için kullanılabilir. Yeniden derlenebilir olarak işaretlenen içeri aktarmalar yeniden konumlandırma için kaydedilir.
yöntemi, SatisfyImportsOnce bir bölümün kapsayıcıya eklenmeden içeri aktarmalarının doldurulmasını sağlar. Birleştirme başarılı olursa, parçanın içeri aktarmaları doldurulur, ancak bölümün dışarı aktarmaları diğer bölümler için kullanılamaz ve yeniden konumlandırma için hiçbir içeri aktarma kaydedilmez.
CompositionContainer nesneleri her zaman atılmalıdır. Dispose yöntemi çağrıldığında nesnesiCompositionContainer, oluşturduğu tüm parçaları da atar.
CompositionContainer Birden çok iş parçacığından erişilebilen bir nesne, oluşturucu kullanılarak CompositionContainer(ComposablePartCatalog, Boolean, ExportProvider[]) parametresi olarak ayarlanmış true
şekilde oluşturulmalıdırisThreadSafe
. olduğunda isThreadSafe
true
performans biraz daha yavaş olacaktır, bu nedenle bu parametreyi tek iş parçacıklı senaryolarda olarak false
ayarlamanızı öneririz. Varsayılan değer: false
.
Uyarı
A CompositionContainer hiçbir zaman kendisini veya buna başvurusu olan bir bölümü içeri aktarmamalıdır. Böyle bir başvuru, güvenilmeyen bir bölümün kapsayıcıdaki tüm bölümlere erişmesine izin verebilir.
Oluşturucular
CompositionContainer() |
CompositionContainer sınıfının yeni bir örneğini başlatır. |
CompositionContainer(ComposablePartCatalog, Boolean, ExportProvider[]) |
Belirtilen katalog, iş parçacığı güvenli modu ve dışarı aktarma sağlayıcıları ile sınıfının yeni bir örneğini CompositionContainer başlatır. |
CompositionContainer(ComposablePartCatalog, CompositionOptions, ExportProvider[]) |
Belirtilen katalog, seçenekler ve dışarı aktarma sağlayıcılarıyla sınıfının yeni bir örneğini CompositionContainer başlatır. |
CompositionContainer(ComposablePartCatalog, ExportProvider[]) |
Belirtilen katalog ve dışarı aktarma sağlayıcılarıyla sınıfının yeni bir örneğini CompositionContainer başlatır. |
CompositionContainer(CompositionOptions, ExportProvider[]) |
Belirtilen dışarı aktarma sağlayıcıları ve seçenekleriyle sınıfının yeni bir örneğini CompositionContainer başlatır. |
CompositionContainer(ExportProvider[]) |
Belirtilen dışarı aktarma sağlayıcılarıyla sınıfının yeni bir örneğini CompositionContainer başlatır. |
Özellikler
Catalog |
Nesnelere ComposablePartCatalog kapsayıcı erişimi sağlayan öğesini Export alır. |
Providers |
Ek ComposablePartCatalog nesnelere kapsayıcı erişimi sağlayan dışarı aktarma sağlayıcılarını alır. |
Yöntemler
Compose(CompositionBatch) |
Belirtilen CompositionBatch içindeki bölümleri kapsayıcıdan ekler veya kaldırır ve oluşturma işlemini yürütür. |
Dispose() |
CompositionContainer sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır. |
Dispose(Boolean) |
CompositionContainer tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetExport<T,TMetadataView>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla dışarı aktarmayı döndürür. Tam olarak eşleşen bir dışarı aktarma yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExport<T,TMetadataView>(String) |
Belirtilen sözleşme adına sahip dışarı aktarmayı döndürür. Tam olarak eşleşen bir dışarı aktarma yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExport<T>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla dışarı aktarmayı döndürür. Tam olarak eşleşen bir dışarı aktarma yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExport<T>(String) |
Belirtilen sözleşme adına sahip dışarı aktarmayı döndürür. Tam olarak eşleşen bir dışarı aktarma yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExportedValue<T>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla dışarı aktarılan nesneyi döndürür. Tam olarak eşleşen bir dışarı aktarılan nesne yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExportedValue<T>(String) |
Belirtilen sözleşme adına sahip dışarı aktarılan nesneyi döndürür. Tam olarak eşleşen bir dışarı aktarılan nesne yoksa, bir özel durum oluşturulur. (Devralındığı yer: ExportProvider) |
GetExportedValueOrDefault<T>() |
Belirtilen tür parametresinden veya belirtilen tür için varsayılan değerden türetilen sözleşme adıyla dışarı aktarılan nesneyi alır veya birden fazla eşleşen dışarı aktarılan nesne varsa bir özel durum oluşturur. (Devralındığı yer: ExportProvider) |
GetExportedValueOrDefault<T>(String) |
Belirtilen sözleşme adına veya belirtilen tür için varsayılan değere sahip dışarı aktarılan nesneyi alır veya birden fazla eşleşen dışarı aktarılan nesne varsa bir özel durum oluşturur. (Devralındığı yer: ExportProvider) |
GetExportedValues<T>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla dışarı aktarılan tüm nesneleri alır. (Devralındığı yer: ExportProvider) |
GetExportedValues<T>(String) |
Belirtilen sözleşme adına sahip dışarı aktarılan tüm nesneleri alır. (Devralındığı yer: ExportProvider) |
GetExports(ImportDefinition) |
Belirtilen içeri aktarma tanımının koşullarıyla eşleşen tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports(ImportDefinition, AtomicComposition) |
Belirtilen içeri aktarma tanımının ve bileşiminin koşullarıyla eşleşen tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports(Type, Type, String) |
Belirtilen sözleşme adına sahip tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports<T,TMetadataView>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports<T,TMetadataView>(String) |
Belirtilen sözleşme adına sahip tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports<T>() |
Belirtilen tür parametresinden türetilen sözleşme adıyla tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExports<T>(String) |
Belirtilen sözleşme adına sahip tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
GetExportsCore(ImportDefinition, AtomicComposition) |
Belirtilen ImportDefinition nesnedeki koşullarla eşleşen tüm dışarı aktarmaların koleksiyonunu döndürür. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnExportsChanged(ExportsChangeEventArgs) |
Olayı tetikler ExportsChanged . (Devralındığı yer: ExportProvider) |
OnExportsChanging(ExportsChangeEventArgs) |
Olayı tetikler ExportsChanging . (Devralındığı yer: ExportProvider) |
ReleaseExport(Export) |
Belirtilen Export nesneyi öğesinden CompositionContainerserbest bırakır. |
ReleaseExport<T>(Lazy<T>) |
Belirtilen dışarı aktarmayı oluşturmadan kaldırır ve mümkünse kaynaklarını serbest bırakır. |
ReleaseExports(IEnumerable<Export>) |
uygulamasından ExportCompositionContainerbir nesne kümesi serbest bırakır. |
ReleaseExports<T,TMetadataView>(IEnumerable<Lazy<T,TMetadataView>>) |
Birleştirmeden bir dışarı aktarma koleksiyonunu kaldırır ve mümkünse kaynaklarını serbest bırakır. |
ReleaseExports<T>(IEnumerable<Lazy<T>>) |
Birleştirmeden bir dışarı aktarma koleksiyonunu kaldırır ve mümkünse kaynaklarını serbest bırakır. |
SatisfyImportsOnce(ComposablePart) |
Yeniden konumlandırma için kaydetmeden belirtilen ComposablePart nesnenin içeri aktarmalarını karşılar. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
TryGetExports(ImportDefinition, AtomicComposition, IEnumerable<Export>) |
Belirtilen içeri aktarmanın koşullarıyla eşleşen tüm dışarı aktarmaları alır. (Devralındığı yer: ExportProvider) |
Ekinlikler
ExportsChanged |
Değişiklikteki dışarı aktarma işlemi gerçekleştiğinde ExportProvider gerçekleşir. (Devralındığı yer: ExportProvider) |
ExportsChanging |
Sağlanan dışarı aktarmalar değiştiğinde gerçekleşir. (Devralındığı yer: ExportProvider) |
Uzantı Metotları
ComposeExportedValue<T>(CompositionContainer, T) |
Belirtilen değerden bir parça oluşturur ve bunu belirtilen oluşturma kapsayıcısında oluşturur. |
ComposeExportedValue<T>(CompositionContainer, String, T) |
Belirtilen nesneden belirtilen sözleşme adı altında bir parça oluşturur ve bunu belirtilen oluşturma kapsayıcısında oluşturur. |
ComposeParts(CompositionContainer, Object[]) |
Öznitelikli nesneler dizisinden birleştirilebilir parçalar oluşturur ve bunları belirtilen oluşturma kapsayıcısında oluşturur. |
SatisfyImportsOnce(ICompositionService, Object) |
Belirtilen bölümü, belirtilen oluşturma hizmetini kullanarak, yeniden konumlandırma devre dışı bırakılarak oluşturur. |
SatisfyImportsOnce(ICompositionService, Object, ReflectionContext) |
Belirtilen bölümü, belirtilen oluşturma hizmetini kullanarak, yeniden konumlandırma devre dışı bırakılarak ve belirtilen yansıma bağlamını kullanarak oluşturur. |