1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 『参考』.net CF组件编程(1)——基础之后

『参考』.net CF组件编程(1)——基础之后

时间:2019-01-17 08:13:04

相关推荐

『参考』.net CF组件编程(1)——基础之后

前言:

最近,自己动手做了个Tcp的小程序,用于手机和台式机之间的局域网数据传输,说起这个来,总是要通过编写通讯类基础代码来实现(可以说是我的复用做的不够好),拿给别人用(主要是开发人员朋友)也是觉得不方便,所以到园子里,查了一些关于组件(Component)的资料,发现有一个不错哦,他的博文地址如下:/mapserver/category/65343.html,说了很多.net组件编程的东西。当然,我的这几篇随笔也是参考他写的而来,只是被我移植到.net cf上面了。在此要感谢mapserver的分享!

在这一篇“基础”中,我就不再重复Mapserver的基础部分了,这里主要和大家分享一下我的一些经验,以免大家走了弯路。

正文:

首先,如何创建一个组件项目,我就不多说了,只需记得我们要用在.net cf下,应该从智能设备项目中开始创建类库即可!然后,将我们的类继承:Component,即可,当然,记得引用:using ponentModel;

其次,我们再为组件添加属性时,那些PropertyAttribute标签,形如:[Category("Customer's Details"), Description("Customer's Sex")] 的东东,在.net cf中已经不复存在,那么如何让组件的属性(公开的),在设计时可见呢,如下图:

经过同仁指点,大家可以到这里看到解决办法,经过我的实验,果真通过:/OSCAR_NJU/archive//04/02/1134231.html,这就是为移动组件添加属性描述的方法。可谓经典啊!

说了这么多,可能已经有朋友,照着开篇的连接进入Mapserver的文章,并动手实验了一把,我也比较喜欢自己动手的,所以,下面我们就一步一步来,写一个基础的.net cf组件吧,组件的功能是Tcp连接测试(为了方便才使用这个话题,你可以换成你自己的东东呢)。

动手部分:

首先,还是新建一个智能设备项目,解决方案名称自定,然后选择WM5平台,用.net cf 2.0框架,项目类型请使用类库,名称就叫做“TCPComponent"吧,然后,修改默认的Class1.cs名称为:TCPHelper.cs,之后,在此文件的代码中,添加引用,以及让类继承Component。

using ponentModel;

public class TCPHelper : Component

此时,你应该能发现,TcpHelper.cs的图标变成组件的样子了吧,反正不是原来的绿色的鸟~。好的,然后,让我们为组件添加公开的属性吧,主要有两个,第一个是远程主机的ip地址,在设计时以及运行时都能设置,其次是连接端口,我们在类的结构中申明这两个属性:

申明属性

privateStringhost;

privateInt32port;

#region主机地址

///<summary>

///远程主机地址

///</summary>

publicstringHostName

{

get

{

returnhost;

}

set

{

if(value==null||value.Trim().Length==0)

{

thrownewArgumentException("InvalidHostname.");

}

host=value;

}

}

#endregion

#region端口号

///<summary>

///通讯使用的端口号

///</summary>

publicintPort

{

get

{

returnport;

}

set

{

if(value==0||value>65535)

{

thrownewArgumentException("InvalidportNumber.");

}

port=value;

}

}

#endregion

ok,编译一下,应该能通过了吧,然后在解决方案中,添加一个WM5的应用程序项目,应该能在工具箱上,看到TCPHelper这个带齿轮的组件,如果看不到,请右键单击工具箱,选择项——》然后手动添加组件的dll文件。

你会发现,把组件拖到设计界面上后,那些属性值居然没有描述,也没有分类,再参考上文提到的那篇文章后,我们右键点击组件项目的名字,选择“添加项”,在选择“设计时属性文件”,在这个文件中,我们添加如下信息:

Code

<ClassName="TCPComponent.TCPHelper">

<DesktopCompatible>

true

</DesktopCompatible>

<PropertyName="Port">

<Category>自定义</Category>

<DefaultValue>

<Type>System.Int32,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089</Type>

<Value>0</Value>

</DefaultValue>

<Description>此处设置远程主机的端口号,应该在1024至65535的范围内设定,测试时请和服务器端设为相同端口</Description>

<Browsable>true</Browsable>

</Property>

<PropertyName="HostName">

<Category>自定义</Category>

<DefaultValue>

<Type>

System.String,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089

</Type>

<Value>192.168.1.1</Value>

</DefaultValue>

<Description>此处设置远程主机的IP地址,应该以4点分发进行输入,测试时请输入服务器ip地址</Description>

<Browsable>

true

</Browsable>

</Property>

</Class>

再编译一下,重新把工具箱中的组件拖入设计界面,是不是就有属性描述和分类了呢?如下图:

ok,这里基本上,就完成了一个基本组件的设置,在下一篇的随笔,我将介绍如何为组件添加方法,以及属性默认值的处理。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。