C# 如何获取所有com&x2B;com和x2B的组件;应用
我正在尝试使用c#和ASP.NET与COM+一起工作。我一直在关注一个问题,但有一部分失败了C# 如何获取所有com&x2B;com和x2B的组件;应用,c#,asp.net,windows,.net-4.0,com+,C#,Asp.net,Windows,.net 4.0,Com+,我正在尝试使用c#和ASP.NET与COM+一起工作。我一直在关注一个问题,但有一部分失败了 dynamic oCatalog = Activator.CreateInstance(Type.GetTypeFromProgID("ComAdmin.COMAdminCatalog")); /* Get the Applications collection and populate it */ dynamic applicationInstances = oCatalog.GetCollectio
dynamic oCatalog = Activator.CreateInstance(Type.GetTypeFromProgID("ComAdmin.COMAdminCatalog"));
/* Get the Applications collection and populate it */
dynamic applicationInstances = oCatalog.GetCollection("Applications");
applicationInstances.Populate();
foreach (dynamic applicationInstance in applicationInstances)
{
Response.Write("<p>" + applicationInstance.Name.ToString() + "-" + applicationInstance.Key.ToString() + "</p>");
dynamic objComponents = oCatalog.GetCollection("Components", applicationInstance.Key);
objComponents.Populate();
foreach(dynamic Components in objComponents)
{
Response.Write("<p>" + Components.Name.ToString() + "</p>");
}
}
dynamic oCatalog=Activator.CreateInstance(Type.GetTypeFromProgID(“ComAdmin.COMAdminCatalog”);
/*获取应用程序集合并填充它*/
DynamicApplicationInstances=oCatalog.GetCollection(“应用程序”);
applicationInstances.Populate();
foreach(应用程序实例中的动态应用程序实例)
{
Response.Write(“”+applicationInstance.Name.ToString()+”-“+applicationInstance.Key.ToString()+””);
动态objComponents=oCatalog.GetCollection(“组件”,applicationInstance.Key);
objComponents.Populate();
foreach(对象组件中的动态组件)
{
Response.Write(“”+Components.Name.ToString()+””);
}
}
当调用上述调用oCatalog.GetCollection(“Components”,applicationInstance.Key)时,我得到错误:
System.Reflection.TargetParameterCountException:调用时出错
GetCollection
如何获取应用程序实例中当前组件的列表?您需要向“应用程序”集合询问特定应用程序的组件:
ICOMAdminCatalog2 oCatalog = (ICOMAdminCatalog2) Activator.CreateInstance(Type.GetTypeFromProgID("ComAdmin.COMAdminCatalog"));
ICatalogCollection applications = oCatalog.GetCollection("Applications");
applications.Populate();
foreach (ICatalogObject applicationInstance in applications)
{
ICatalogCollection comps = applications.GetCollection("Components", applicationInstance.Key);
comps.Populate();
foreach (ICatalogObject comp in comps)
{
Console.WriteLine("{0} - {1}", comp.Name, comp.Key);
}
}
有关示例,请点击此处: