CompositionContainer Kelas
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengelola komposisi bagian.
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
- Warisan
- Penerapan
Dalam contoh berikut, CompositionContainer objek diinisialisasi dengan katalog dan digunakan untuk mengisi impor bagian. Contoh ini menggunakan Model Pemrograman Atribut.
[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
Objek CompositionContainer melayani dua tujuan utama dalam aplikasi. Pertama, ia melacak bagian mana yang tersedia untuk komposisi dan apa dependensinya, dan melakukan komposisi setiap kali set bagian yang tersedia berubah. Kedua, ini menyediakan metode di mana aplikasi mendapatkan instans bagian yang disusun atau mengisi dependensi bagian yang dapat disusun.
Penting
Jenis ini mengimplementasikan IDisposable antarmuka. Ketika Anda telah selesai menggunakan jenis , Anda harus membuangnya baik secara langsung atau tidak langsung. Untuk membuang jenis secara langsung, panggil metodenya Dispose dalam try
/catch
blok. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using
(di C#) atau Using
(di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Mengimplementasikan IDisposable" di IDisposable topik antarmuka.
Bagian dapat disediakan untuk kontainer baik secara langsung atau melalui Catalog properti . Semua bagian yang dapat ditemukan dalam hal ini ComposablePartCatalog tersedia untuk kontainer untuk memenuhi impor, bersama dengan bagian apa pun yang ditambahkan secara langsung.
Metode ini Compose memungkinkan bagian yang dibuat untuk ditambahkan ke kontainer yang ada. Dengan asumsi komposisi berhasil, bagian-bagian ini akan memiliki impor mereka yang diisi dengan bagian yang diambil dari kontainer, dan ekspornya akan tersedia untuk bagian lain. Impor yang ditandai sebagai dapat dikompresi ulang akan didaftarkan untuk komposisi ulang.
Metode ini SatisfyImportsOnce memungkinkan bagian untuk mengisi impornya tanpa ditambahkan ke kontainer. Jika komposisi berhasil, impor bagian akan diisi, tetapi ekspor bagian tidak akan tersedia untuk bagian lain dan tidak ada impor yang akan didaftarkan untuk rekomosisi.
CompositionContainer objek harus selalu dibuang. Ketika metode dipanggil Dispose , CompositionContainer objek juga membuang semua bagian yang telah dibuatnya.
Objek CompositionContainer yang dapat diakses dari beberapa utas harus dibangun dengan parameter yang isThreadSafe
diatur ke true
, menggunakan CompositionContainer(ComposablePartCatalog, Boolean, ExportProvider[]) konstruktor . Performa akan sedikit lebih lambat ketika isThreadSafe
adalah true
, jadi kami sarankan Anda mengatur parameter ini ke false
dalam skenario utas tunggal. Default adalah false
.
Peringatan
A CompositionContainer tidak boleh mengimpor dirinya sendiri, atau bagian yang memiliki referensi ke dalamnya. Referensi seperti itu dapat memungkinkan bagian yang tidak tepercaya untuk mendapatkan akses semua bagian dalam kontainer.
Composition |
Menginisialisasi instans baru kelas CompositionContainer. |
Composition |
Menginisialisasi instans CompositionContainer baru kelas dengan katalog, mode aman utas, dan penyedia ekspor yang ditentukan. |
Composition |
Menginisialisasi instans CompositionContainer baru kelas dengan katalog, opsi, dan penyedia ekspor yang ditentukan. |
Composition |
Menginisialisasi instans CompositionContainer baru kelas dengan katalog dan penyedia ekspor yang ditentukan. |
Composition |
Menginisialisasi instans CompositionContainer baru kelas dengan penyedia dan opsi ekspor yang ditentukan. |
Composition |
Menginisialisasi instans CompositionContainer baru kelas dengan penyedia ekspor yang ditentukan. |
Catalog |
ComposablePartCatalog Mendapatkan yang menyediakan akses kontainer ke Export objek. |
Providers |
Mendapatkan penyedia ekspor yang menyediakan akses kontainer ke objek tambahan ComposablePartCatalog . |
Compose(Composition |
Menambahkan atau menghapus bagian-bagian dalam yang ditentukan CompositionBatch dari kontainer dan menjalankan komposisi. |
Dispose() |
Merilis semua sumber daya yang digunakan oleh instans CompositionContainer kelas saat ini. |
Dispose(Boolean) |
Merilis sumber daya tidak terkelola yang digunakan oleh CompositionContainer dan secara opsional merilis sumber daya terkelola. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Get |
Mengembalikan ekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. Jika tidak ada persis satu ekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan ekspor dengan nama kontrak yang ditentukan. Jika tidak ada persis satu ekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan ekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. Jika tidak ada persis satu ekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan ekspor dengan nama kontrak yang ditentukan. Jika tidak ada persis satu ekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan objek yang diekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. Jika tidak ada persis satu objek yang diekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan objek yang diekspor dengan nama kontrak yang ditentukan. Jika tidak ada persis satu objek yang diekspor yang cocok, pengecualian akan dilemparkan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan objek yang diekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan atau nilai default untuk jenis yang ditentukan, atau melemparkan pengecualian jika ada lebih dari satu objek yang diekspor yang cocok. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan objek yang diekspor dengan nama kontrak yang ditentukan atau nilai default untuk jenis yang ditentukan, atau melemparkan pengecualian jika ada lebih dari satu objek yang diekspor yang cocok. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua objek yang diekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua objek yang diekspor dengan nama kontrak yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor yang cocok dengan kondisi definisi impor yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor yang sesuai dengan kondisi definisi dan komposisi impor yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor dengan nama kontrak yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor dengan nama kontrak yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor dengan nama kontrak yang berasal dari parameter jenis yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mendapatkan semua ekspor dengan nama kontrak yang ditentukan. (Diperoleh dari ExportProvider) |
Get |
Mengembalikan kumpulan semua ekspor yang cocok dengan kondisi dalam objek yang ditentukan ImportDefinition . |
Get |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
Get |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
Memberwise |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
On |
Memunculkan kejadian ExportsChanged. (Diperoleh dari ExportProvider) |
On |
Memunculkan kejadian ExportsChanging. (Diperoleh dari ExportProvider) |
Release |
Melepaskan objek yang ditentukan Export dari CompositionContainer. |
Release |
Menghapus ekspor yang ditentukan dari komposisi dan melepaskan sumber dayanya jika memungkinkan. |
Release |
Merilis sekumpulan Export objek dari CompositionContainer. |
Release |
Menghapus kumpulan ekspor dari komposisi dan melepaskan sumber dayanya jika memungkinkan. |
Release |
Menghapus kumpulan ekspor dari komposisi dan melepaskan sumber dayanya jika memungkinkan. |
Satisfy |
Memenuhi impor objek yang ditentukan ComposablePart tanpa mendaftarkannya untuk komposisi ulang. |
To |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Try |
Mendapatkan semua ekspor yang sesuai dengan kondisi impor yang ditentukan. (Diperoleh dari ExportProvider) |
Exports |
Terjadi ketika ekspor dalam ExportProvider perubahan. (Diperoleh dari ExportProvider) |
Exports |
Terjadi ketika ekspor yang disediakan berubah. (Diperoleh dari ExportProvider) |
Compose |
Membuat bagian dari nilai yang ditentukan dan menyusunnya dalam kontainer komposisi yang ditentukan. |
Compose |
Membuat bagian dari objek yang ditentukan di bawah nama kontrak yang ditentukan dan menyusunnya dalam kontainer komposisi yang ditentukan. |
Compose |
Membuat bagian yang dapat disusun dari array objek yang diatribusikan dan menyusunnya dalam kontainer komposisi yang ditentukan. |
Satisfy |
Menyusun bagian yang ditentukan dengan menggunakan layanan komposisi yang ditentukan, dengan komposisi ulang dinonaktifkan. |
Satisfy |
Menyusun bagian yang ditentukan dengan menggunakan layanan komposisi yang ditentukan, dengan komposisi ulang dinonaktifkan dan menggunakan konteks pantulan yang ditentukan. |
Produk | Versi |
---|---|
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: