Interaction.CreateObject(String, String) Yöntem
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.
BIR COM nesnesine başvuru oluşturur ve döndürür.
CreateObject
Visual Basic'te sınıfların örneklerini oluşturmak için kullanılamaz, ancak bu sınıflar com bileşenleri olarak açıkça kullanıma sunulmaz.
public static object CreateObject (string ProgId, string? ServerName = "");
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object CreateObject (string ProgId, string? ServerName = "");
public static object CreateObject (string ProgId, string ServerName = "");
static member CreateObject : string * string -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object
Parametreler
- ProgId
- String
Gereklidir.
String
. Oluşturulacak nesnenin program kimliği.
- ServerName
- String
İsteğe bağlı.
String
. Nesnenin oluşturulacağı ağ sunucusunun adı. Boş bir dize ("") ise ServerName
, yerel bilgisayar kullanılır.
Döndürülenler
BIR COM nesnesine başvuru oluşturur ve döndürür.
CreateObject
Visual Basic'te sınıfların örneklerini oluşturmak için kullanılamaz, ancak bu sınıflar com bileşenleri olarak açıkça kullanıma sunulmaz.
- Öznitelikler
Özel durumlar
Sunucu kullanılamıyor
Belirtilen türde bir nesne yok.
Örnekler
Aşağıdaki örnekte, bir Microsoft Excel çalışma sayfası oluşturmak için işlevi kullanılır CreateObject
ve çalışma sayfası bir dosyaya kaydedilir. Bu örneği kullanmak için, Excel'in bu programın çalıştığı bilgisayara yüklenmesi gerekir. Ayrıca, Proje menüsündeki Başvuru Ekle iletişim kutusunun COM sekmesinden tür kitaplığına bir başvuru eklemeniz gerekir. Tür kitaplığının adı, bilgisayarınızda yüklü olan Excel sürümüne bağlı olarak değişir. Örneğin, Microsoft Excel 2002 tür kitaplığıNın adı Microsoft Excel 10.0 Nesne Kitaplığı'dı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ğlamadan kaçınmanız 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, Proje menüsündeki Başvuru Ekle 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 Kod ile Etkileşim
Bir diğer sorun da COM nesnelerinin ortak dil çalışma zamanı avantajı olmadan yönetilmeyen kod ( kod) kullanmasıdır. Visual Basic'in yönetilen kodunuN COM'dan yönetilmeyen kodla karıştırılmasında makul 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 kullanır. Bir PIA bulamazsa, COM kitaplığındaki her sınıf için yerel birlikte çalışabilirlik sınıflarını 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 işlev yalnızca gösterim amacıyla Microsoft Office nesneleriyle birlikte kullanılır CreateObject
. 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 ServerName
CreateObject
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"dır.
Not
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 Geliştirici Ağı). Uygulamanız için bir kayıt defteri anahtarı eklemeniz gerekebilir.
Aşağıdaki kod, adlı MyServer
uzak 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.
Not
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 GetObject
sağlamak için işlevini kullanın. Bir nesne kendisini tek örnekli bir nesne olarak kaydettiyse, kaç kez CreateObject
yürütülürse yürütülürse yürütülsin, nesnenin yalnızca bir örneği oluşturulur.
Framework 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 bulunur. Özellikle yöntemi CreateInstance veya CreateInstanceFrom yöntemi yararlı olabilir.
Önemli
İş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.