110,533
社区成员
发帖
与我相关
我的任务
分享
COM:
[Guid("F91BDA41-01CC-4cff-8569-4E366834A4CF")]
public interface ISharpObject2
{
string Name
{
get;
set;
}
String GetName();
}
public class Class1 : ServicedComponent, ISharpObject2
{
public Class1()
{
}
private string m_strName;
public string Name
{
get
{
return m_strName;
}
set
{
m_strName = value;
}
}
public String GetName() { return Name; }
}
调用COM
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Type type = Type.GetTypeFromProgID("ClassLibrary1.Class1");
Object obj = Activator.CreateInstance(type);
object c = type.InvokeMember("GetName", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, obj, new Object[] { });
MessageBox.Show(c.ToString());
}
}
type,obj都找到了,GetName也找到了(没有提示找不当"GetName"方法),但c老是返回null,怎么回事?
看看组件服务COM已经有了,而且接口里也存在GetName
我希望能后期绑定的方法访问COM,就像delphi里可以用createoleobject直接访问中间层一样,无需引用任何的dll或者接口定义