C# ';agsXMPP.MessageGrabber';是一个';类型';但是像';变量';

C# ';agsXMPP.MessageGrabber';是一个';类型';但是像';变量';,c#,C#,代码如下: XmppClientConnection xmpp = new XmppClientConnection(); xmpp.Server = "gmail.com"; xmpp.ConnectServer = "talk.google.com"; xmpp.Username = "aleksandr.gordon"; xmpp.Password = "password"; xmpp.Open();

代码如下:

  XmppClientConnection xmpp = new XmppClientConnection();
        xmpp.Server = "gmail.com";
        xmpp.ConnectServer = "talk.google.com";
        xmpp.Username = "aleksandr.gordon";
        xmpp.Password = "password";
        xmpp.Open();

        agsXMPP.Jid JID = new Jid("thegabmeister1@gmail.com");
        xmpp.MessageGrabber.Add(JID, new agsXMPP.Collections.BareJidComparer(), new MessageCB(xmpp.MessageGrabber), null);

        agsXMPP.protocol.client.Message msg = new agsXMPP.protocol.client.Message();
        msg.Type = agsXMPP.protocol.client.MessageType.chat;
        msg.To = JID;
        msg.Body = "how u doing" + DateTime.Now.ToString();

        xmpp.OnLogin += delegate(object o) { xmpp.Send(msg); };
更新的新代码:

    agsXMPP.Jid JID = new Jid("thegabmeister@gmail.com");
    xmpp.MessageGrabber.Add(JID, new agsXMPP.Collections.BareJidComparer(),
        new MessageCB(delegate(object sender, agsXMPP.protocol.client.Message msg, object data)
    {
    }), null);
    agsXMPP.protocol.client.Message msg1 = new agsXMPP.protocol.client.Message();
    msg1.Type = agsXMPP.protocol.client.MessageType.chat;
    msg1.To = JID;
    msg1.Body = "how u doing" + DateTime.Now.ToString();

    xmpp.OnLogin += delegate(object o) { xmpp.Send(msg1); };
我做错什么了?为什么我会犯这个错误

new MessageCB(MessageGrabber)
应该是:

new MessageCB(xmpp.MessageGrabber)

至于你做错了什么,你使用的类型是agsXMPP.MessageGrabber,就像一个变量一样,它不会编译。

你可能需要传递一个委托方法,尝试将这个方法添加到你的代码中

void Login() {
    XmppClientConnection xmpp = new XmppClientConnection();
    xmpp.Server = "gmail.com";
    xmpp.ConnectServer = "talk.google.com";
    xmpp.Username = "aleksandr.gordon";
    xmpp.Password = "password";
    xmpp.Open();

    agsXMPP.Jid JID = new Jid("thegabmeister1@gmail.com");
    xmpp.MessageGrabber.Add(JID, new agsXMPP.Collections.BareJidComparer(), new MessageCB(GrabMessage), null);

    agsXMPP.protocol.client.Message msg = new agsXMPP.protocol.client.Message();
    msg.Type = agsXMPP.protocol.client.MessageType.chat;
    msg.To = JID;
    msg.Body = "how u doing" + DateTime.Now.ToString();

    xmpp.OnLogin += delegate(object o) { xmpp.Send(msg); };
}

protected void GrabMessage(object sender, agsXMPP.protocol.client.Message msg, object data) {
}
这是我能建议的最后一件事,但上述方法可以解决您的问题,除非您在其他地方有其他问题:

xmpp.MessageGrabber.Add(JID, new agsXMPP.Collections.BareJidComparer(),
    new MessageCB(delegate(object sender, agsXMPP.protocol.client.Message msg, object data) {
    if (msg.Body != null) {
        MessageBox.Show(msg.Body);
    }
    }), null);

谢谢,我刚试过,但没用,结果还是一样error@...? - 如果双击Visual Studio中的错误,它会将您直接带到有问题的语句,作为该类中的一个方法-您可能希望将其重命名为不同的
xmpp.MessageGrabber.Add(JID,new agsXMPP.Collections.BareJidComparer(),new MessageCB(),null)修改了我的答案,让您有一个更好的想法…看看这是否适用于您错误1“agsXMPP.XmppClientConnection”不包含“GrabMessage”的定义,并且找不到接受类型为“agsXMPP.XmppClientConnection”的第一个参数的扩展方法“GrabMessage”(是否缺少using指令或程序集引用?)如果你向下滚动到“发送和接收消息”,你将看到如何实现它-与我写的相同,但该网站可能会让你更好地理解。看起来很不错,但我认为应该有一个简单的解决方案来解决我的问题