服务端的Silverlight应用程序ria服务列表文件

时间:2013-02-09 12:48:56

标签: silverlight wcf-ria-services server-side file-listing

拥有silverlight应用程序,旨在为最终用户实现备份恢复机制。

我必须通过 ria services 获取位于 WebSite 项目中的特定目录中的文件列表。

通过使用哪个对象,我可以在 WebSite 项目的特定目录中列出文件。

感谢您的关注。

2 个答案:

答案 0 :(得分:1)

您可以使用Directory类枚举服务器上的文件。在您的域服务中添加一个方法以将文件名列表返回给Silverlight客户端应该相当简单。

http://msdn.microsoft.com/en-us/library/system.io.directory(v=vs.100).aspx

答案 1 :(得分:0)

答案是某种黑客攻击。我受到了用于将客户端IP地址发送到服务的方法的启发。

在default.aspx中,将此参数添加到您的silverlight对象:

<param name="initParams" value="clientIP=<%=Request.UserHostAddress%>,serverPath=<%=Server.MapPath(".")%>" />

在silverlight应用程序中:

    public string ClientIP=string.Empty;
    public string ServerPath = string.Empty;


    private void Application_Startup(object sender, StartupEventArgs e)
    {
        this.RootVisual = new MainPage();

        try
        {
            ClientIP = e.InitParams["clientIP"].ToString();
            ServerPath = e.InitParams["serverPath"].ToString();
        }
        catch 
        {
        }
    }

考虑我将客户端ip发送到xap文件以记录日志问题。如果你愿意,你可以省略它。

并以这种方式在Silverlight应用程序调用服务方法中:

 ser.GetFileList(((App)(App.Current)).ServerPath, FilesListReceived, null);

服务方面:

 public List<string> GetFileList(string baseDirectory)
 {
        var result = new List<BRFile>();

        var files =Directory.EnumerateFiles(  baseDirectory + "\\DBBackup" );

        ....
 }

祝你好运。