【问题标题】:Compile time error "The name 'pubnub' does not exist in the current context"编译时错误“当前上下文中不存在名称‘pubnub’”
【发布时间】:2016-08-25 22:02:55
【问题描述】:

我已经好几年没用过了,我用的时候是。我正在尝试在 C# 中设置一个简单的 概念证明,我真的很挣扎。我创建了一个新的表单应用程序(我希望能够使用按钮、开始/停止/等来控制提要)。然后我打开program.cs,它给了我以下代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace feedtest
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }

        }
    }

我使用 包管理器安装了,并添加了using 引用,但这就是问题所在。 first step in the documentation 使用以下行表示“初始化 API”:

Pubnub pubnub = new Pubnub("demo", "demo");

我终于想通了,我把它放在了Static Void Main(),但现在我好像要掉进兔子洞了。在修改了文档中的一些内容并忽略了其他内容之后,我处于以下几点:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using PubNubMessaging.Core;

namespace feedtest
{
    static class Program
    {
        private static string result;

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            Pubnub pubnub = new Pubnub("demo", "demo");

            pubnub.Subscribe<string>(
               "my_channel",
                DisplaySubscribeReturnMessage,
                DisplaySubscribeConnectStatusMessage,
                DisplayErrorMessage
            );


        }

        static void DisplayErrorMessage(PubnubClientError obj)
        {
            throw new NotImplementedException();
        }

        static void DisplaySubscribeConnectStatusMessage(string obj)
        {
            throw new NotImplementedException();
        }

        static void DisplaySubscribeReturnMessage(string obj)
        {
            Console.WriteLine("SUBSCRIBE REGULAR CALLBACK:");
            Console.WriteLine(result);
            if (!string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(result.Trim()))
            {
                List<object> deserializedMessage = pubnub.JsonPluggableLibrary.DeserializeToListOfObject(result);
                if (deserializedMessage != null && deserializedMessage.Count > 0)
                {
                    object subscribedObject = (object)deserializedMessage[0];
                    if (subscribedObject != null)
                    {
                        //IF CUSTOM OBJECT IS EXCEPTED, YOU CAN CAST THIS OBJECT TO YOUR CUSTOM CLASS TYPE
                        string resultActualMessage = pubnub.JsonPluggableLibrary.SerializeToJsonString(subscribedObject);
                    }
                }
            }
        }
    }

}

当前错误是

当前上下文中不存在名称“pubnub”

如何解决此错误?我是不是该?我什至接近吗?我是否选择了错误的起点?有谁知道任何好的,简单,pubnub 教程?

【问题讨论】:

  • 抱歉,这真的不是一个很好的标题问题。
  • 这里的问题不是pubnub问题,而是c#。在同时学习 pubnub 之前,您可能会从学习 c# 基础知识中获得一些收获。
  • edit您的问题标题描述您遇到的实际问题或您要问的问题。您在这里已经足够长的时间知道所写的标题完全没有信息 - 对于未来的读者在尝试找到问题解决方案时在搜索结果中找到它有什么可能的价值?而且您在这里也有足够的经验,知道要求我们查找教程的问题也是题外话。 (我建议你在担心 Pubnub 之前先谷歌一下 C# 教程。)
  • 我完全同意并已投票关闭(我会删除但已经有答案)。我很沮丧,因为遵循这样的文档是我通常学习的方式。我从一个基本示例开始并从那里修改它。在这种情况下,基本示例无法按原样工作,我想这就是我希望获得帮助的原因。

标签: .net vb.net pubnub pubnub nuget c# .net pubnub


【解决方案1】:

pubnub 超出了您尝试使用它的范围。像您一样将其用作局部变量,您需要在使用它的相同方法中声明它。

如果你想在两种方法中使用相同的pubnub,那么你需要把它放在其他地方或者传递它。可能在您的程序中将其声明为静态字段。

private static Pubnub pubnub = new Pubnub("demo", "demo");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多