Set Method不起作用......它没有给变量赋值

时间:2013-04-09 20:34:20

标签: c# class get set

见鬼。

我正在使用服务器,客户端和类库创建此项目。 在类库(我添加到服务器和客户端作为参考)中,我有例如:

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 Method工作正常,但只有Set Method ...而问题是它没有显示任何错误!它只是没有给字符串变量赋值!!

2 个答案:

答案 0 :(得分:3)

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

我不确定你要托管什么样的网络“服务器”,但大多数时候,服务器只在被调用时实例化它们的类。所以基本上你是在联系服务器,它实例化包含“f”字符串的任何类。您设置了该值。服务器完成其工作并终止进程。然后再次联系服务器询问“f”的值,因此它再次实例化所有内容,这意味着该值将“无效”。

答案 1 :(得分:1)

您是否尝试过使用Properties

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

public class Bar
{
    public void Boz()
    {
        var foo = new Foo();
        foo.Message = "Working";
    }
}