因远程访问导致Silverlight中Design界面不显示的解决方法

因远程访问导致Silverlight中Design界面不显示的解决方法,第1张

概述为了更方便说明问题,本文将新建一个项目用于重现错误,然后解决错误。说明:vs2010 ultimate + silverlight5 本文中所有代码都可以在github中查看,git版本中采用了master-dev的方式。在master中可以查看每一个demo的最后完成,在dev中可以查看每一步的代码。 github地址:[email protected]:kiwiwin/silverlight-dem

为了更方便说明问题,本文将新建一个项目用于重现错误,然后解决错误。说明:vs2010 ultimate + silverlight5

本文中所有代码都可以在github中查看,git版本中采用了master-dev的方式。在master中可以查看每一个demo的最后完成,在dev中可以查看每一步的代码。

github地址:[email protected]:kiwiwin/silverlight-demo.git

 

一、产生错误

1.首先创建一个新的silverlight application project。取名为mode-check-demo。

2.在mode-check-demo.Web中新建一个webservice,取名为MyDataService。在其中添加一个WebMethod,取名为GetData

    public class MyDataService : System.Web.Services.WebService    {        [WebMethod]        public string GetData()        {            return "This is My Data";        }    }


3.编译mode-check-demo.Web,在mode-check-demo中添加service reference,找到MyDataService,namespace取名为MyDataService

4.添加一个UserControl,取名为Data.xaml,并添加一个loaded事件,表示当Data.xaml被载入的时候,触发该事件

    public partial class Data : UserControl    {//...        private voID UserControl_Loaded(object sender,RoutedEventArgs e)        {            var clIEnt =  new MyDataServiceSoapClIEnt();            clIEnt.GetDataCompleted += (s,args) => displayBox.Text = args.Result;            clIEnt.GetDataAsync();        }    }

5.将Data.xml拖入MainPage中,如果你看到下面这个提示,我的目的就算达到了:

System.MissingMethodException


6.ctrl+F5,运行,在浏览器中是可以正常使用的。[

会不会有人鄙视我用IE呢?]

 

二、解决问题

从Design中可以看出问题的产生原因,是MainPage中load了Data这个UserControl,而UserControl的loaded对应的事件是远程的,所以出现了上图中显示的错误。

 

1.在UserControl_Loaded中检查是不是出于Design Mode中,如果出于Design Mode,则不加载数据:

 

        private voID UserControl_Loaded(object sender,RoutedEventArgs e)        {            if (!System.ComponentModel.DesignerPropertIEs.GetIsInDesignmode(this))            {                var clIEnt = new MyDataServiceSoapClIEnt();                clIEnt.GetDataCompleted += (s,args) => displayBox.Text = args.Result;                clIEnt.GetDataAsync();            }        }


2.编译,reload MainPage.xaml,搞定

总结

以上是内存溢出为你收集整理的因远程访问导致Silverlight中Design界面不显示的解决方法全部内容,希望文章能够帮你解决因远程访问导致Silverlight中Design界面不显示的解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1064836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存