試圖在我的C#應用程序中使用一些COM對象。從C#中的COM對象訪問函數/ Silverlight
1-ST變種:
using AXVLC;
Type t = Type.
GetTypeFromCLSID(
Guid.Parse("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
);
AXVLC.VLCPluginClass vid = Activator.CreateInstance(t) as VLCPluginClass;
但是,得到這樣的誤差: 互操作類型 'AXVLC.VLCPluginClass' 不能被嵌入。改爲使用適用的界面。 ComObjectCalls
我明白,COM對象不公開一個公共構造函數,那麼我將不得不找到一些其他方式使用該對象。很多時候COM對象使用工廠模式來創建對象的實例(例如iCLASS非實例= COMClass.CreateInstance();)
或者使用Activator.CreateInstance()
此外,我想有COM對象的另一個問題: - 我使用動態類型:dynamic shell = AutomationFactory.CreateObject(「WMPlayer.OCX.7」);
它創建 - 確定。但是如何知道,我可以使用哪些metods。我該如何施展它?
主要問題是:我想用Silverlight應用程序訪問COM對象。 所以有動態/ expondo對象或以P調用的工作方式/調用一些本地庫在Silverlight中,如:
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "MessageBox")]
public static extern IntPtr MineMessageBox(int hWnd, string text,
string caption, uint type);
...
MineMessageBox(0, "Hello World", "Platform Invoke Sample", 0);
什麼是訪問Silverlight的COM對象功能的最佳方式,也可以以獲取運行時關於此COM對象的所有信息(獲取方法,我可以稱之爲等)
謝謝!