Interaction.CreateObject(String, String) Yöntem

Tanım

COM nesnesine başvuru oluşturur ve döndürür. CreateObject, bu sınıflar com bileşenleri olarak açıkça gösterilmediği sürece Visual Basic sınıf örnekleri oluşturmak için kullanılamaz.

[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The COM object to be created cannot be statically analyzed and may be trimmed")]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object CreateObject(string ProgId, string? ServerName = "");
public static object CreateObject(string ProgId, string? ServerName = "");
public static object CreateObject(string ProgId, string ServerName = "");
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The COM object to be created cannot be statically analyzed and may be trimmed")>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateObject : string * string -> obj
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object

Parametreler

ProgId
String

Gerekli. String. Oluşturulacak nesnenin program kimliği.

ServerName
String

Optional. String. Nesnenin oluşturulacağı ağ sunucusunun adı. Boş bir dize ("") ise ServerName , yerel bilgisayar kullanılır.

Döndürülenler

COM nesnesine başvuru oluşturur ve döndürür. CreateObject, bu sınıflar com bileşenleri olarak açıkça gösterilmediği sürece Visual Basic sınıf örnekleri oluşturmak için kullanılamaz.

Öznitelikler

Özel durumlar

Sunucu kullanılamıyor

Belirtilen türde bir nesne yok.

Örnekler

Aşağıdaki örnek, Microsoft Excel çalışma sayfası oluşturmak için CreateObject işlevini kullanır ve çalışma sayfasını bir dosyaya kaydeder. Bu örneği kullanmak için, Excel bu programın çalıştığı bilgisayara yüklenmelidir. Ayrıca, Project menüsündeki Add Reference iletişim kutusunun COM sekmesinden tür kitaplığına başvuru eklemeniz gerekir. Tür kitaplığının adı, bilgisayarınızda yüklü Excel sürümüne bağlı olarak değişir. Örneğin, Microsoft Excel 2002 tür kitaplığı Microsoft Excel 10.0 Nesne Kitaplığı olarak adlandırılır.

Sub TestExcel()
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet

    xlApp = CType(CreateObject("Excel.Application"), 
                Microsoft.Office.Interop.Excel.Application)
    xlBook = CType(xlApp.Workbooks.Add, 
                Microsoft.Office.Interop.Excel.Workbook)
    xlSheet = CType(xlBook.Worksheets(1), 
                Microsoft.Office.Interop.Excel.Worksheet)

    ' The following statement puts text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
    ' The following statement shows the sheet.
    xlSheet.Application.Visible = True
    ' The following statement saves the sheet to the C:\Test.xls directory.
    xlSheet.SaveAs("C:\Test.xls")
    ' Optionally, you can call xlApp.Quit to close the workbook.
End Sub

Açıklamalar

COM bileşeninin bir örneğini oluşturmak için tarafından döndürülen CreateObject nesneyi bir nesne değişkenine atayın:

Sub CreateADODB()
   Dim adoApp As Object
   adoApp = CreateObject("ADODB.Connection")
End Sub

Döndürülen nesneyi depolamak için kullandığınız nesne değişkeninin türü uygulamanızın performansını etkileyebilir. yan tümcesiyle bir nesne değişkeni bildirilmesi As Object , herhangi bir nesne türüne başvuru içerebilen bir değişken oluşturur. Ancak, bu değişken aracılığıyla nesneye erişim geç bağlıdır, yani bağlama programınız çalıştırıldığında gerçekleşir. Daha yavaş uygulama performansı dahil olmak üzere geç bağlamayı önlemeniz gereken birçok neden vardır.

Erken bağlamaya , yani program derlendiğinde bağlamaya neden olan bir nesne değişkeni oluşturabilirsiniz. Bunu yapmak için, Project menüsündeki Add Reference iletişim kutusunun COM sekmesinden nesnenizin tür kitaplığına bir başvuru ekleyin. Ardından nesnenizin belirli türünün nesne değişkenini bildirin. Çoğu durumda, nesneleri oluşturmak için deyimini Dim ve birincil birlikte çalışma derlemesini kullanmak, işlevini kullanmaktan CreateObject daha verimlidir.

Yönetilmeyen Kodla Etkileşim Kurma

Bir diğer sorun da COM nesnelerinin ortak dil çalışma zamanının avantajı olmadan yönetilmeyen kod ( kod) kullanmasıdır. Visual Basic yönetilen kodunun COM'dan yönetilmeyen kodla karıştırılmasında adil bir karmaşıklık derecesi vardır. BIR COM nesnesine başvuru eklediğinizde, Visual Basic bu kitaplık için birincil birlikte çalışma derlemesini (PIA) arar; bulursa, bunu kullanır. Bir PIA bulamazsa, COM kitaplığındaki her sınıf için yerel birlikte çalışabilirlik sınıfları içeren bir birlikte çalışabilirlik derlemesi oluşturur. Daha fazla bilgi için bkz. .NET Framework Uygulamalarında COM Birlikte Çalışabilirliği.

Mümkün olduğunda genellikle kesin olarak bağlı nesneler ve birincil birlikte çalışma derlemeleri kullanmanız gerekir. Aşağıdaki örneklerde CreateObject işlevi yalnızca gösterim amacıyla Microsoft Office nesnelerle birlikte kullanılır. Ancak, bu nesnelerin kullanımı daha kolaydır ve uygun birincil birlikte çalışma derlemesi ile kullanıldığında daha güvenilirdir.

Uzak Bilgisayarda Nesne Oluşturma

Uzak ağa bağlı bir bilgisayarda, bilgisayarın adını işlevin bağımsız değişkenine ServerNameCreateObject geçirerek bir nesne oluşturabilirsiniz. Bu ad, paylaşım adının Makine Adı bölümüyle aynıdır: "\\MyServer\Public" ServerName adlı bir paylaşım için "MyServer".

Note

Bir uygulamayı uzak ağa bağlı bir bilgisayarda erişilebilir hale getirme hakkında ek bilgi için COM belgelerine bakın (bkz. Microsoft Developer Network). Uygulamanız için bir kayıt defteri anahtarı eklemeniz gerekebilir.

Aşağıdaki kod, adlı MyServeruzak bilgisayarda çalışan bir Excel örneğinin sürüm numarasını döndürür:

Sub CreateRemoteExcelObj()
    Dim xlApp As Object
    ' Replace string "\\MyServer" with name of the remote computer.
    xlApp = CreateObject("Excel.Application", "\\MyServer")
    MsgBox(xlApp.Version)
End Sub

Uzak sunucu adı yanlışsa veya kullanılamıyorsa bir çalışma zamanı hatası oluşur.

Note

Nesnenin geçerli bir örneği olmadığında kullanın CreateObject . Nesnenin bir örneği zaten çalışıyorsa, yeni bir örnek başlatılır ve belirtilen türde bir nesne oluşturulur. Geçerli örneği kullanmak veya uygulamayı başlatmak ve bir dosya yüklemesini sağlamak için işlevini kullanın GetObject . Bir nesne kendisini tek örnekli bir nesne olarak kaydettiyse, kaç kez CreateObject yürütülürse yürütülsün, nesnenin yalnızca bir örneği oluşturulur.

Çerçeve Nesneleri Oluşturma

işlevini yalnızca COM nesnesi oluşturmak için kullanabilirsiniz CreateObject . .NET Framework nesnesi oluşturmak için tam olarak eşdeğer bir mekanizma olmasa da, Activator ad alanında System yerel veya uzak nesneler oluşturma yöntemleri içerir. Özellikle yöntemi CreateInstance veya CreateInstanceFrom yöntemi yararlı olabilir.

Important

İşlev, CreateObject kısmi güven durumlarında yürütülmesini etkileyebilecek yönetilmeyen kod izni gerektirir. Daha fazla bilgi için bkz SecurityPermission . ve Kod Erişim İzinleri.

Şunlara uygulanır

Ayrıca bkz.