关于反射的问题

baidu_27549073 2019-03-04 02:59:33
已知
Assembly ass; //程序集
class cls;//程序集中的一个类
MethodInfo method;//类中的一个方法
ParameterInfo param;//方法中的一个参数。如 Get(Datetime date) 中的 Datetime date
当用param.ParameterType.FullName取 参数类型时,会返回
[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]

问题:
如何去掉程序集信息"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
现在我是直接通过解析字符串去掉的,有没有什么方法可以直接去掉
...全文
407 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_27549073 2019-03-07
  • 打赏
  • 举报
回复
引用 6 楼 以专业开发人员为伍 的回复:
引用 2 楼 lindexi_gd 的回复:
引用 1 楼 正怒月神 的回复:
已经解决了这个问题。使用:parameter.ParameterType.ToString()具有统一的格式 Int型会返回 System.Int32,string 类型 返回 System.String。 做这个功能是为了Web项目做接口管理的,大概功能时读取MVC项目中 返回对象为JsonResult的Action的注释信息,然后自动生成接口文档。这里的问题是为了将xml的内容和反射的类型相匹配。 现在这个方法的完整代码如下:

        /// <summary>
        /// 得到dll说明文档中的参数类型
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        private static string GetParameterTypeName(ParameterInfo parameter)
        {
            return parameter.ParameterType.ToString()
                .Replace("[", "{")
                .Replace("]", "}")
                .Replace("System.Nullable`1", "System.Nullable");
        }
baidu_27549073 2019-03-05
  • 打赏
  • 举报
回复
坑的一笔 int型.Tostring() 的接口是 Int32,string型出来是system.string
  • 打赏
  • 举报
回复
int 就是返回 Int32 啊,其它的也是如此。说不定在别的机器上 int 的还会返回 Int64 呢。 你取得自定义的表示形式,那就自己格式化有关泛型类的输出。但是前提是你要熟悉 string 这类东西本身就是 String 之类的。
baidu_27549073 2019-03-04
  • 打赏
  • 举报
回复
试了下: parameter.ToString()可以直接获取到,离我的需求更近一步 System.Nullable`1[System.DateTime] 参数名
baidu_27549073 2019-03-04
  • 打赏
  • 举报
回复
引用 1 楼 正怒月神 的回复:
引用 2 楼 lindexi_gd 的回复:
不行,直接使用.Name,碰到NullAble类型就变成 Nullable`1
lindexi_gd 2019-03-04
  • 打赏
  • 举报
回复
使用 xxType.Name 试试 如果需要命名空间就这样写 `xxType.Namespace + xxType.Name ` 更多反射请看 win10 uwp 反射
正怒月神 2019-03-04
  • 打赏
  • 举报
回复
param.ParameterType.Name 呢

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧