如何使客户端应用通过.net远程处理通过共享库界面从服务器应用中获取数据库中的所有表行

时间:2018-12-31 14:27:23

标签: c# .net linq remoting

我在远程客户端应用程序中有一个网格视图,我需要用远程服务器上的远程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[]或任何对象类型来检索所有学生

0 个答案:

没有答案