Visual Studio版本转换工具 v1.0 作者:本人 (如果出现Bug请邮件:[email protected])
[email protected]:
增加:
1。直接拖拉项目文件(*.sln)至界面,即可自动读取文件路径
2。可选择【备份】,对转换前的(*.sln)文件及相关(*.csproj)文件进行备份版权归原作者:Arthur Liberman,本人仅以学习之途进行修改下载地址:http://mydisk.lijialong.name/file/2/unVhrcFz/codeproject主页:http://www.codeproject.com/KB/macros/SolutionConverter.aspxps:20分给前4位同学哦~~
[email protected]:
增加:
1。直接拖拉项目文件(*.sln)至界面,即可自动读取文件路径
2。可选择【备份】,对转换前的(*.sln)文件及相关(*.csproj)文件进行备份版权归原作者:Arthur Liberman,本人仅以学习之途进行修改下载地址:http://mydisk.lijialong.name/file/2/unVhrcFz/codeproject主页:http://www.codeproject.com/KB/macros/SolutionConverter.aspxps:20分给前4位同学哦~~
{
using System.Runtime.CompilerServices; [AttributeUsage(AttributeTargets.All, AllowMultiple=true, Inherited=true)]
public class StringValueAttribute : Attribute
{
[CompilerGenerated]
private string <StringValue>k__BackingField; public StringValueAttribute(string value)
{
this.StringValue = value;
} public string StringValue
{
[CompilerGenerated]
get
{
return this.<StringValue>k__BackingField;
}
[CompilerGenerated]
protected set
{
this.<StringValue>k__BackingField = value;
}
}
}
}namespace System
{
using System.Runtime.CompilerServices; public static class StringValueExtension
{
public static int GetStringCount<T>(this T value)
{
return GetStringValueAttributes<T>(value).Length;
} public static string GetStringValue<T>(this T value)
{
return value.GetStringValue<T>(0);
} public static string GetStringValue<T>(this T value, int index)
{
StringValueAttribute[] stringValueAttributes = GetStringValueAttributes<T>(value);
if (stringValueAttributes.Length <= index)
{
return null;
}
return stringValueAttributes[index].StringValue;
} private static StringValueAttribute[] GetStringValueAttributes<T>(T value)
{
Type type = value.GetType();
if (value is Enum)
{
return (type.GetField(value.ToString()).GetCustomAttributes(typeof(StringValueAttribute), false) as StringValueAttribute[]);
}
return (type.GetCustomAttributes(typeof(StringValueAttribute), false) as StringValueAttribute[]);
}
}
}