我在远程客户端应用程序中有一个网格视图,我需要用远程服务器上的远程linq查询结果填充它。
我正在通过Web窗体客户端应用程序使用.net远程处理,将接口类作为共享库,将作为服务器的控制台应用程序使用linq to sql数据库(StudentsDB
)。
我试图在接口上标识一个数组方法,并在服务器中实现它。但是我总是得到一个错误,即Interface.array无法转换或强制转换为server.array
共享库类
public interface IMyRemoteStudent
{
Array getAllStudents();
}
服务器
namespace Server
{
public class RemoteStudent : MarshalByRefObject, IMyRemoteStudent
{
public RemoteStudent()
{
}
public Array getAllStudents()
{
var ctx = new LinqDataContext();
var std = (from ss in ctx.Students
select ss).ToArray();
return std;
}
}
class Program
{
static void Main(string[] args)
{
HttpChannel chnl = new HttpChannel(1234);
ChannelServices.RegisterChannel(chnl, false);
RemoteStudent Obj = new RemoteStudent();
RemotingServices.Marshal(Obj, "MyRemote.soap");
}
}
}
客户
protected void btn_Add_Click(object sender, EventArgs e)
{
HttpChannel chnl = new HttpChannel();
ChannelServices.RegisterChannel(chnl, false);
IMyRemoteStudent ST = (IMyRemoteStudent)Activator.GetObject(typeof(IMyRemoteStudent),
"http://localhost:1234/MyRemote.soap");
Array arr = ST.getAllStudents()
gridview.datasource = arr;
}
所有答案在线帮助共享一个学生对象,但我需要以list<>
或array[]
或任何对象类型来检索所有学生