我有两个程序,一个是COM,一个是c#程序
COM类似于service或adapter。他一直不断地通过互操作在调用c#程序,例如下面的C#应用程序代码
[ComVisible(true), ComImport]
[GuidAttribute("333655566-23D1-4d25-B6A4-842277867989876")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ITest
{
[DispId(1)]
string GetObject();
[ComVisible(true)]
[GuidAttribute("345654456456456-8EBE-957CEC39793E"), ProgId("sdfgsdfhsdhdsdfgs")]
public class Test: ITest 
问题是我没有COM代码,不能修改,那么如何通过C#应用程序莱禁止COM的调用,或者禁止接受\相应COM的调用?谢谢!

解决方案 »

  1.   

    他一直不断地通过互操作在调用c#程序  我觉得你说的调用 C# 代码吧。 如果是程序 就要考虑是不是同一个进程。是与不是做法又不一样。  如果是代码, 解决方案 有两方面。
    1. 回馈给Com停止调用。 你也说了 没代码,也不知道他回不会有回执。所以不可行。
    2.  C#代码不允许他调用。或者停止执行 这个你应该能做到。不过性能肯定没有关闭好,不过能达到效果。
      

  2.   

    回楼上,如何停止执行呢?c#这一端程序就是继承了一个COM可见的借口程序,一个方法
    COM是可以找到的,或者说警察知道小偷在哪儿,小偷就是不知道如何隐身,让警察找不到可不可以动态的用代码实现屏蔽[ComVisible(true), ComImport]功能呢?
    怎么屏蔽?