见鬼。
我正在使用服务器,客户端和类库创建此项目。 在类库(我添加到服务器和客户端作为参考)中,我有例如:
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 ...而问题是它没有显示任何错误!它只是没有给字符串变量赋值!!
答案 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";
}
}