对于“依赖注入”,我最常用的是“设值注入法”(即通过Setter属性注入),对于需要注入很多依赖的类来说,一个一个的手动写属性的繁琐已经让我难以忍受了。于是我写了一个VS2003的小插件,你只需要输入类型和属性名,它就能在编辑器指定的地方自动生成属性,并且一次可生成多个属性。(我试用了VS2005下的属性自动生成功能,感觉也不是那么好用:))
这个小插件安装后,会在VS2003的右键快捷菜单的顶部出现一个菜单项“PropertyCreatorAddin”:

点击该菜单,会出现如下窗口:

比如你在“属性字符串”的TextBox中输入字符串“ int ConnectionCount ,string ServerName”,点击“生成”按钮,则编辑器中会生成如下代码:
输入属性字符串需要注意:
(1)类型和属性名之间用一个空格隔开
(2)如果需要生成多个属性,则每个之间用英文逗号隔开(如示例中一样)。
(3)插件界面上的两个checkBox用于控制“只读”属性和“只写”属性。
下载PropertyCreatorAddin安装程序
这个小插件安装后,会在VS2003的右键快捷菜单的顶部出现一个菜单项“PropertyCreatorAddin”:
点击该菜单,会出现如下窗口:
比如你在“属性字符串”的TextBox中输入字符串“ int ConnectionCount ,string ServerName”,点击“生成”按钮,则编辑器中会生成如下代码:
#region ConnectionCount
private int connectionCount = 0 ;
public int ConnectionCount
{
get
{
return this.connectionCount ;
}
set
{
this.connectionCount = value ;
}
}
#endregion
#region ServerName
private string serverName = "" ;
public string ServerName
{
get
{
return this.serverName ;
}
set
{
this.serverName = value ;
}
}
#endregion
private int connectionCount = 0 ;
public int ConnectionCount
{
get
{
return this.connectionCount ;
}
set
{
this.connectionCount = value ;
}
}
#endregion
#region ServerName
private string serverName = "" ;
public string ServerName
{
get
{
return this.serverName ;
}
set
{
this.serverName = value ;
}
}
#endregion
输入属性字符串需要注意:
(1)类型和属性名之间用一个空格隔开
(2)如果需要生成多个属性,则每个之间用英文逗号隔开(如示例中一样)。
(3)插件界面上的两个checkBox用于控制“只读”属性和“只写”属性。
下载PropertyCreatorAddin安装程序
Feedback
# re: VS小插件--属性自动生成器 回复
2006-03-24 16:19 by SimpleCode东西虽小,不过真好,下来用用。
另外能不能公布源码?我想学习怎么写AddIn
另外能不能公布源码?我想学习怎么写AddIn
相较于这个工具,我对如何制作它更感兴趣。
楼主何不授人与渔 :)
另外提个建议 属性的类型最好通过选择的形式设定。而且最好能支持自定义类型的选择。
楼主何不授人与渔 :)
另外提个建议 属性的类型最好通过选择的形式设定。而且最好能支持自定义类型的选择。
private int connectionCount = 0 ;
public int ConnectionCount
{
get
{
return this.connectionCount ;
}
set
{
this.connectionCount = value ;
}
}
通过大小写来区分成员变量,好吗?这样VB.net无法调用
不如 :
private string m_AAA;
public string AAA
{
get;set............;
}
public int ConnectionCount
{
get
{
return this.connectionCount ;
}
set
{
this.connectionCount = value ;
}
}
通过大小写来区分成员变量,好吗?这样VB.net无法调用
不如 :
private string m_AAA;
public string AAA
{
get;set............;
}
对写插件感兴趣,楼有相关的资料能否发出来或写个制作过程?
因为平常都是用XDE的,所以对这个功能就....
因为平常都是用XDE的,所以对这个功能就....
# re: VS小插件--属性自动生成器 回复
2006-03-24 17:04 by laifangsong不错。
很好用呢,不错,临时+属性是很烦的。
建议:
如果选中如下区域点右键
int a;
string a;
MyType mytype;
自动生成属性。
#region 也弄成可选的。
建议:
如果选中如下区域点右键
int a;
string a;
MyType mytype;
自动生成属性。
#region 也弄成可选的。
#region A
private string a = "" ;
public string A
{
get
{
return this.a ;
}
set
{
this.a = value ;
}
}
#endregion
建议在a前加上m_
private string a = "" ;
public string A
{
get
{
return this.a ;
}
set
{
this.a = value ;
}
}
#endregion
建议在a前加上m_
Macro版Property Generator :)
http://birdshome.cnblogs.com/archive/2006/03/25/PropertyGenerator.html
http://birdshome.cnblogs.com/archive/2006/03/25/PropertyGenerator.html
# re: VS小插件--属性自动生成器 回复
2006-03-27 13:42 by yukai zhao授人于渔,谢谢
yukaizhao@gmail.com
yukaizhao@gmail.com
各位朋友,关于如何开发VS插件,摩诘兄已经在他的blog上给出了详细的讲述,所以想学习开发VS插件的朋友请直接从他的blog上学习。我就不重复发明轮子了:)
摩诘的blog:http://dragon.cnblogs.com/
摩诘的blog:http://dragon.cnblogs.com/
浙公网安备 33010602011771号