一个月前买了一本《C#本质论(第三版)》,一直没时间看,最近拿起来翻看时发现讲解Attribute时有一段代码错误,具体代码如下:
{
public static string[] GetMissingRequiredOptions(object commandLine)
{
StringCollection missingOptions = new StringCollection();
PropertyInfo[] properties = commandLine.GetType().GetProperties();
foreach (var property in properties)
{
Attribute[] attributes = (Attribute[])property.GetCustomAttributes(typeof(CommandLineSwitchRequiredAttribute), false);
if ((attributes.Length > 0) && (property.GetValue(commandLine, null) == null))
{
if (property.GetValue(commandLine, null) == null)
{
missingOptions.Add(property.Name);
}
}
return missingOptions.Add(property.Name);
}
}
很明显,foreach语句缺少闭合括号,而且最后的return语句是错误的,心有不甘之下,查找了曾经下载的英文原版pdf文件,发现有同样的问题,正确的代码该如何书写,望高手解惑。
本文链接
由于工作需要最近一直在学习ASP.NET MVC3,也算是临时抱佛脚吧!在学习的过程中发现大家写的知识点都是分散的,没有哪位大牛作为一个系列来讲的[可能是本人GG或度娘水平有限],所以想把自己的学习过程在园子里记录下来,如果恰好帮助了你,那么我感到无比荣幸。需要说明的是这里只是记录本人的一个学习过程,并且这也是本人开BLOG之后的第一个系列笔记[真心需要自己能一直写下去],内容或可能会有一些不当之处,敬请各位园友拍砖!
首先还是照惯例,开篇先讲一下ASP.NET MVC3的一些概述,有很多人会认为讲一些概念性的东西没啥用,尤其是为了项目需要而去学习一门技术时,其实这是可以理解的,我想每个人都有过这个过程,但我觉得在对某个技术的基本熟悉或能够基本应用时,回过头来看一些概述性的东西是有好处的,可以帮助我们更好的理解技术的工作原理及设计思想。
ASP.NET MVC体系结构模式是将应用程序分成三个主要组件:模型M—视图V—控制器C。ASP.NET MVC框架是一个可测试性非常高的轻型框架,它与WEB Form应用程序一样集成了现有的ASP.NET功能,如母版页,成员资格与角色管理等。三个组件的功能主要是: 模型M,一般来说模型分为视图模型和域模型,视图模型主要作用就是为视图页面提供所需要的数据;而域模型一般是跟业务有关的或有甚者包括业务逻辑或数据存储[有关视图模型和域模型的比较将在后面的笔记中记录];视图V众所周之即是页面;控制器C是MVC中的重要部分起着“心脏”作用,即处理用户的交互并生成相应视图模型发送回视图界面,在视图和模型中起着桥梁作用。
ASP.NET MVC并不是要取代传统的ASP.NET WEB Form,而是给我们提供另一种编程方式(个人认为ASP.NET MVC和ASP.NET WEB Form都不属于设计模式,而是编程方式)。所以它们有各自的优点和不足之处,ASP.NET MVC的优势体现在:测试驱动开发(TDD),便于测试;可扩展性强;强大的路由机制;MVC开放源代码;生成的HTML代码更简洁。ASP.NET WEB Form的优势为:小型系统开发更便捷,更容易理解等。
MVC工作原理
如果需要了解更为详细的内容可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/dd381412(v=vs.108).aspx
本文链接
功能点:1、读取XAML文件显示在界面上;
2、将XAML文件中的布局在DocumentViewer中显示,从而实现打印预览。
一、读取指定的XAML文件
XmlReader xr = new XmlTextReader(filePath);
object ob = XamlReader.Load(xr);
注:其中XAML文件是FixedPage为根节点的结构。
二、将读取的文件转换成页 并绑定数据
FixedPage fp = (FixedPage)ob;
fp.DataContext = 数据源;
三、将页加载到PageContent中
PageContent pc = new PageContent();
pc.Child = fp; //或者((IAddChild)pc).AddChild(fp);
四、FixedDocument加载所有页,设置页大小
FixedDocument fd = new FixedDocument();
fd.DocumentPaginator.PageSize = new Size(96 * 8.5, 96 * 11);
fd.Pages.Add(pc);
五、将XAML保存成XPS文件
XpsDocument doc = new XpsDocument(tempPath,FileAccess.Write);
XpsDocumentWriter docWriter = XpsDocument.CreateXpsDocumentWriter(doc);
docWriter.Write(fd);
doc.Close();
六、读取XPS文件加载到DocumentViewer上
XpsDocument xpsdoc = new XpsDocument(tempPath, FileAccess.Read);
DocumentViewer.Document = xpsdoc.GetFixedDocumentSequence() as IDocumentPaginatorSource;
本文链接