Delegate 是不是不支持 object 类型的参数, 我用只有string/int类型参数的都没问题,可是有object 类型的系统就报错:“ININ.Utility.cPredicitveWatcher”不会实现接口成员“PREDICTIVEDIALCOM2Lib.IEICClientCallback2.PostMessage(int, object)”。“ININ.Utility.cPredicitveWatcher.PostMessage(int, object)”或者是静态、非公共的,或者有错误的返回类型。
这是接口程序:
namespace PREDICTIVEDIALCOM2Lib
{
    [TypeLibType(4160)]
    [Guid("7E667602-5448-45FB-B4F6-948E3E20AC25")]
    public interface IEICClientCallback2
    {
        [DispId(7)]
        void CampaignTransition(string p_Workflow, string p_NewCampaign, string p_NewUrl);
        [DispId(6)]
        void DataPop(object p_Names, object p_Values);
        [DispId(9)]
        void DebugError(string p_ErrorText);
        [DispId(5)]
        object PostMessage(int p_Message, object p_Params);
        [DispId(1)]
        void PreviewCallAdded(object p_Names, object p_Values);
        [DispId(8)]
        void SetFormDefinition(object p_FormDef, object p_FormDispositions, object p_FormExtensions, object p_FormMisc);
        [DispId(4)]
        void ShutdownClient(string p_Message);
        [DispId(2)]
        void WorkflowStarted(string p_Workflow);
        [DispId(3)]
        void WorkflowStopped(string p_Workflow);
    }
}这是我自己写的:
namespace ININ.Utility
{
    public class cPredicitveWatcher : PREDICTIVEDIALCOM2Lib.IEICClientCallback2
    { public cPredicitveWatcher()  {}
         
        public delegate void OnCampaignTransitionDelegate(string p_Workflow, string p_NewCampaign, string p_NewUrl);
        public delegate void OnDataPopDelegate(object p_Names, object p_Values);
        public delegate void OnDebugErrorDelegate(string p_ErrorText);
        public delegate void OnPostMessageDelegate(int p_Message, object p_Params);
        public delegate void OnPreviewCallAddedDelegate(int p_Message, object p_Params);
        public delegate void OnSetFormDefinitionDelegate(object p_FormDef, object p_FormDispositions, object p_FormExtensions, object p_FormMisc);
        public delegate void OnShutdownClientDelegate(string p_Message);
        public delegate void OnWorkflowStartedDelegate(string p_Workflow);
        public delegate void OnWorkflowStoppedDelegate(string p_Workflow);        public event OnCampaignTransitionDelegate CampaignTransitionEvent;
        public event OnDataPopDelegate  DataPopEvent;
        public event OnDebugErrorDelegate DebugErrorEvent;
        public event OnPostMessageDelegate PostMessageEvent;
        public event OnPreviewCallAddedDelegate PreviewCallAddedEvent;
        public event OnSetFormDefinitionDelegate SetFormDefinitionEvent;
        public event OnShutdownClientDelegate ShutdownClientEvent;
        public event OnWorkflowStartedDelegate WorkflowStartedEvent;
        public event OnWorkflowStoppedDelegate WorkflowStoppedEvent;
#region cPredicitveWatcher Members         public  void CampaignTransition(string p_Workflow, string p_NewCampaign, string p_NewUrl)
        {
             if (!(CampaignTransitionEvent==null))
                 CampaignTransitionEvent(p_Workflow,p_NewCampaign,p_NewUrl);
                
        }
        public  void DataPop(object p_Names, object p_Values)
        {
            if (!(DataPopEvent == null))
                DataPopEvent(p_Names, p_Values);
        }
        public    void DebugError(string p_ErrorText)
        {
            if (!(DebugErrorEvent == null))
                DebugErrorEvent(p_ErrorText);
        }
        public void  PostMessage(int p_Message, object p_Params)
        {
            if (!(PostMessageEvent == null))
                PostMessageEvent(p_Message, p_Params);
        }
     .....