Code: Select all
using System;
using System.EnterpriseServices;
using System.Reflection;
[assembly: ApplicationName("COM_component")]
[assembly: AssemblyKeyFileAttribute("COM_component.snk")]
[Transaction(TransactionOption.Required)]
class COM_component: ServicedComponent
{
[AutoComplete]
public void Call(string message){
Console.WriteLine("Callee called"+message);
}
}
компиляция прошла успешно, я получил: COM_component.dll, COM_component.snk
-----
далее хочу использовать этот COM компонент:
т.к. это COM объект, то я полагаю что не могу его вызывать через [DllImport("COM_component")]
поэтому делаю так:
Code: Select all
using System;
using System.Windows.Forms;
using COM_component; //предварительно добавил референс
class MyForm : AppForm
{
public static void Main()
{
Application.Run(new MyForm());
}
}
class AppForm : Form
{
public AppForm()
{
COM_component comp=new COM_component();
comp.Call("Hello");
}
}
но похоже что что-то не так...
уже на using COM_component она начинает ругаться: COM_component is unaccessible due to its protection level
что я делаю не так?