无法从Get请求中检索值[Nancy]

时间:2017-08-02 11:18:38

标签: c# .net winforms c++-cli nancy

我正在尝试创建本地服务器,以便可以通过网络请求控制winform [获取请求]
我正在使用Nancy创建本地服务器。我使用C ++ / Cli编写了winform。但是在C#类中处理GET请求 当我点击IP地址http://localhost:12345/something但无法将数据检索到某个变量

时,我可以生成Web浏览器

下面是我的C#代码

using System;
using Nancy;

namespace WebService
{
    public class NancyClass : NancyModule
    {
        public delegate void pushData(Nancy.DynamicDictionaryValue value);
        public pushData pd;

        public NancyClass()
        {
            Get["/{t}"] = parameters => 
            {
                try
                {
                    pd(parameters.t); //Null Exception here
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex); 
                }
                return "Result is " + parameters.t;
            };
        }        
    }  
}

上面的代码生成以下错误

  

System.NullReferenceException:未将对象引用设置为实例   一个对象。在CallSite.Target(Closure,CallSite,pushData,   对象)在   System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2 [T0,T1](调用点   site,T0 arg0,T1 arg1)at   WebService.NancyClass。< .ctor> b__2_0(对象参数)in   G:\ Sample \ project \ NancyClass.cs:第16行

下面的代码属于C ++ / Cli winform

public ref class MyForm : public System::Windows::Forms::Form
{            
    using namespace System;
    using namespace Nancy::Hosting::Self;
    using namespace Nancy;

    public:MyForm(void)
    {
        InitializeComponent();
        WebService::NancyClass ^nc = gcnew WebService::NancyClass();
        nc->pd = gcnew WebService::NancyClass::pushData(this, &MyForm::Data_from_webServer);            
        auto host = gcnew NancyHost(gcnew Uri("http://localhost:12345"));
        host->Start(); // start hosting
     }
 };

我甚至无法在C#类中打印parameters.t Console.WriteLine(parameters.t)Console.WriteLine(Convert.ToString(parameters.t))会导致以下错误

  

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:调用是   不明确的赌注以下方法或属性:   ' System.Console.WriteLine(string,para ms object [])'和   '的System.Console.WriteLine(布尔)'在CallSite.Target(闭包,   CallSite,Type,Object)at   System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2 [T0,T1](调用点   site,T0 arg0,T1 arg1)at   WebService.NancyClass。< .ctor> b__2_0(对象参数)in   G:\ Sample \ project \ NancyClass.cs:第16行

0 个答案:

没有答案