创建一个windows services (不用管语法是否有错,随手写的)
class services : ServiceBase{
private int i;
private string s;
public void OnStart(){
this.i = 1;
this.s = "this is a services!":
}
public int getI(){
return this.i;
}
public string getInfo(){
return this.s;
}
public bool Refresh(){
this.s = "DoDo";
this.i =0;
return(true);
}
}
现在的问题是如何在winForm中或其它程序访问这个服务(假设已在服务器中运行了),并修改它的public属性
解决方案 »
- 谁来帮我看看,我想用C#写这段AS代码
- 高分求c# 使用GET如何模拟浏览网页
- xpath起始点
- 高手进。在winform里使用axWebBrowser显示一个网页,用BUTTON来激活没有问题,如果把BUTTON中的代码放在frmOnLine_Load方法下就会有问题。这是为什么呀,如何解决呢。
- 求足球彩票缩水原理或原码~~(比如:如何进行14保13)
- 日期格式的问题,“2000/.1/15”也合法?
- 我现在有个问题了!!我要1500条数据。用来做密码!
- HttpWebRequest.KeepAlive 属性的问题
- 关于close事件的问题!谢谢!
- 想用C#做一款类似为知笔记的简易版html格式文档编辑器
- 关于邮件发送问题,请教大虾!!!!!!!!!!!!!!
- 关于C#socket 和Thread并用出现的问题
创建一个windows servernamespace server1{
class services1 : ServiceBase{
private int i;
private string s;
public void OnStart(){
this.i = 1;
this.s = "this is a services!":
}
public int getI(){
return this.i;
}
public string getInfo(){
return this.s;
}
public bool Refresh(){
this.s = "DoDo";
this.i =0;
return(true);
}
}
}
我要在form(同一namespace)中调用
//假设服务器上的对应服务中的 s = "OnServer1"; i = 1000;Server1.services1 oServer = new Server1.services1();this.txt.Text = this.oServer.getInfo();botton1.Click = button1_Click()
button1_Click(){
this.txt1.Text = this.oServer.Refresh();
}一:
这样的话,txt.Text == "this is a services!":
还是 txt.Text == "OnServer1";???二:
还有就是
winform 中的 button1_Click 能否执行 this.oServer.Refresh(); 达到修改服务器的服务的状态.
这里就回到一个现在都觉得比较难得问题, 那就是不同进程间的通讯问题。 解决的办法:
1. Socket
2. Remoting
3. NamePine
4. Memory Share可能还有其他的一些方法吧, 可是我不知道.......
那就是COM.
1. 在你的Windows serivces 初始化你的COM object,
然后你的winform也初始化同样的一个COM object.
在你的COM object里, 你要确认只能有一个Instance运行。
那么你的winform就可以有一个指针到同一个COM object里, 那么你就可以调用那些方法了.2. 或者把你的COM放到COM running table里, 例如Visual Studio就是这样。
然后利用Marshal来获取正在COM running table里运行的COM object来调用你需要的函数希望这些对你有帮助.