0

见鬼的家伙。

我正在使用服务器、客户端和类库制作这个项目。在类库(我将其添加到服务器和客户端作为参考)中,例如:

string f = "not working";
public void SetString(string n)
{
  f = n;
}

public string GetStr ()
{
 return f;
}

我已经连接了客户端和服务器并且它们工作正常,Get方法也工作但SET METHOD不起作用?当我从客户端调用 set 方法时,它没有设置我给出的值!!。HttpChannel chan = new HttpChannel();

Tic obj = (Tic)Activator.GetObject(typeof(Tic), "http://127.0.0.1:9050/MyServer");

private void Form1_Load(object sender, EventArgs e)
    {
        ChannelServices.RegisterChannel(chan);
    }

private void button1_Click(object sender, EventArgs e)
    {
        string m = "working";
        obj.SetString(m);
    }

我再次重申 Get 方法工作正常,但只有 Set 方法......问题是它没有显示任何错误!它只是没有给字符串变量赋值!!

4

2 回答 2

3

如果我正确理解您的设置,您正在联系远程 http 服务器并调用设置变量值的方法。然后,您联系该 http 服务器并要求返回该值,您将获得原始值。

我不确定您托管的是哪种网络“服务器”,但大多数情况下,服务器仅在调用时实例化它们的类。所以基本上你正在联系一个服务器,它实例化任何包含“f”字符串的类。你设置值。服务器完成其工作并终止该进程。然后您再次联系服务器询问“f”的值,因此它再次实例化所有内容,这意味着该值将“不起作用”。

于 2013-04-09T20:44:04.097 回答
1

您是否尝试过使用属性

public class Foo
{
    public string Message {get;set;}
}

public class Bar
{
    public void Boz()
    {
        var foo = new Foo();
        foo.Message = "Working";
    }
}
于 2013-04-09T20:39:16.980 回答