zoukankan      html  css  js  c++  java
  • 使用SilverLight构建插件式应用程序(三)

    构建第一个插件:

    我要构建的第一个插件是用来显示我的项目概况和开发历史的,介绍的内容都放在服务器端的logs.txt文本中。下面开始构建:

    1.         新建立一个SilverLight的类库项目,名字叫 WindCloud.Notes;

    2.         删除掉默认的Class1.cs项目

    3.         添加对公共项目 WindCloud.PubUnit的引用;

    4.         添加一个SivlerLight用户控件,名字叫PageNote;

    5.         修改界面布局:

    l         添加表格和一个文本框,整个代码如下:

    <Grid x:Name="LayoutRoot" Background="#EEFFFFFF" >

            <Grid.RowDefinitions>

                <RowDefinition Height="*"></RowDefinition>

            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>

                <ColumnDefinition Width="*"></ColumnDefinition>

            </Grid.ColumnDefinitions>

            <TextBlock x:Name="txtNotes" FontSize="14" Grid.Column="0" Grid.Row="0" VerticalAlignment="Top" Text="TextBlock" TextWrapping="Wrap" />

     

    </Grid>

    6.         编写代码:

    l         首先实现接口IPlugin:

    public partial class PageNote : UserControl,IPlugin

    #region IPlugin 成员

     

            public IApplication Application

            {

                get

                {

                    return App;

                }

                set

                {

                    App = value;

                }

            }

     

            public UserControl LoadUserControl()

            {

                return this;

            }    

     

     

            public void SetVisibility(Visibility visible)

            {

                this.Visibility = visible;

            }

     

            #endregion

     

    然后在插件加载完成之后添加一个按钮到服务器的界面上:

                App.AddToolBar("Notes", this.GetType().ToString(), new Image());

    最后获取服务器的日志文件并显示在文本框中:

       //加载日志文件

                WebClient wc = new WebClient();

                if (wc.IsBusy)

                {

                    wc.CancelAsync();

                }

                wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);        

                wc.OpenReadAsync(new Uri("logs.txt", UriKind.Relative));

    显示日志文件爱你

    void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)

            {

                System.IO.Stream s= e.Result as Stream;

                using (StreamReader reader = new StreamReader(s))

                {

                    this.txtNotes.Text= reader.ReadToEnd();

                }

            }    

    至此整个插件就完成:

    主要步骤概括如下:

    l         实现IPlugin接口

    l         插件加载完成之后在界面上显示;

    部署插件:

    把插件生成的文件WindCloud.Notes.dll 拷贝到 WebClientBin目录先,然后修改配置文件WindCloud.Config.xml

    <assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

            <titlename>Notes</titlename>

            <version>0.0.1</version>

            <filename>WindCloud.Notes.dll</filename>

            <typename>WindCloud.Notes.PageNote</typename>

            <description></description>

    </assembly>

    添加一个插件项,至此。整个插件完成

    效果演示:http://www.prolightsoft.com  ,需要SilverLight 2.0的运行时。

    代码下载: http://www.prolightsoft.com/windcloud.rar

  • 相关阅读:
    el自定义函数库
    DOM4J
    【转载】SqlServer日期时间函数
    【原创】C#认识/理解/运用 StreamReader,StreamWriter,StringReader,StreamWriter
    【原创】C#认识/理解/运用 FileStream
    【原创】C#操作XML(带命名空间)
    【原创】ASP.NET MVC3使用html编辑器(kindeditor)
    【原创】ASP.NET MVC3 从零开始一步步构建Web
    【转载】MVC使用jqGrid
    【原创】C#使用HttpWebRequest,HttpWebResponse
  • 原文地址:https://www.cnblogs.com/songsgroup/p/1272251.html
Copyright © 2011-2022 走看看