MediaCenter开发整理(三)C#部分

其实MediaCenter的模式于asp.net的方式非常相似,C#代码相当于MCML代码部分的后台。其实这一部分的内容不需要了解很多就可以上手写MC的程序了,扫一遍API也就基本上可以了。

贴上这部分的整理结果。

MediaCenter编程C#

MCMLC#通过.net properties进行通信

MCMl不能使用C#的变量,只能定义properties   含有getset

它应该是基于ModeItem并且在set里应该包含FirePropertyChanged

 

Session class

程序的入口类  维护状态和数据以及一些选项

 

media center程序创建时将创建两个类

第一个是Session class继承ModeItem它将维持在一个media center程序的整个生命周期  

第二个是一个继承了IAddinModuleIAddInEntryPoint的类

它将实现IAddinModuleIntializeUnintialize两个接口

         IAddInEntryPointLaunch一个接口

 

IntializeUnintialize

在程序启动和结束时调用,Intialize里不要做过多的加载工作,它会阻塞显示直到它执行完返回

甚至一个小的操作都可能导致Media Center报告程序被锁死

在保存一些数据的时候会经常发生这种找不到程序的情况

Launch

新的MCML要被显示或者一些参数传递给程序是将调用词函数

同样的 ,这个函数里不要做太多的操作

一般情况是新建一个PageSession后就立即返回

 

PageSession

每个程序至少包含一个,负责跟踪程序进程

经常用到的一个是HistoryOrientedPageSession

它将记录用户的浏览轨迹等很多信息并且支持backspace之类的回退命令

事实上用户的界面显示是从这个类开始的  通过调用接口Navigate

 

一个程序需要的基本类和接口代码:

Public class Base:IAddInModule, IAddInEntryPoint

{

       Public static HistoryOrientedPageSeeion History;

       Public void Intialize(Dictionary<String, Objiect> appInfo,

Dictionary<String,Object> entryPointInfo)

       {}

       Public void Unintialize()

       {}

       Public void Launch(AddInHost host)

{

       History = new HistoryOrientedPageSession();

       History.Go(“resx://Assm………”);

}

}

 

程序被拉起时,先调用Intialize  然后调用Launch

创建一个HistoryOrientedPageSession   开始记录管理我们的路径

然后进入mcml

最后程序退出时  将调用Unintialize  可以把没有做完的事情放在这里做,但是还是尽量使其操作越少越好!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值