首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Asp.net视图中获取动态类型对象

在Asp.net视图中获取动态类型对象
EN

Stack Overflow用户
提问于 2014-09-26 06:20:31
回答 1查看 559关注 0票数 0

我想为一个ASP.Net MVC 6应用程序创建一个日志系统,它将日志消息链接到特定的对象。

例如:

  • 用户{0}购买{1}
  • 项目{0}已重新储备供应商{1},购买由(2)

它将映射到:

  • 用户John Apple购买Box
  • 商品钟与供应商卡西欧重新进货,由约翰尼购买。

到目前为止,我拥有的是一个接收IEnumerable和IEnumerable ids的“日志”方法

例如:

  • EnumObjectType.User:2
  • EnumObjectType.Product:1
  • ..。

我已经有了所有要保存在数据库中的代码--这个数组,读取它们,将它们转换成枚举,等等。然而,我不知道如何使应用程序的"View“部分。

即转换一个Log.Message (一个实例),例如:User {0} purchased {1}转换为User <a href="#">John Apple</a> purchased <a href="#">Box</a>

我需要什么?

在“日志模型视图”中,如何获得任何模型的“名称”属性(查询给定对象并使用其属性),知道它的类型( EnumObjectType)及其ID?

附加细节

所有可以记录的“模型”都将实现一个包含两个方法的接口,一个ToLinkStructure返回到该类的给定实例的链接(例如/User/Details/{0}),另一个返回一个快速表示实例的字符串(例如: ToLoggableString )。“用户:”+ this.username)

谢谢!我试着说出所有可能在我脑海里闪过的细节,但如果有什么遗漏的话,我会很乐意补充的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 12:13:16

如果我正确理解,您希望读取对象的属性,其类型要到运行时才知道。可以这样做:

代码语言:javascript
运行
复制
var value = myObject.GetType().GetProperty("name").GetValue(myObject, null);

更好的选择是,正如您说的那样,类实现一个接口,就是将该属性放在接口中,并且只接受在日志函数中实现该接口的实例。

代码语言:javascript
运行
复制
public interface MyInterface{
    string Name { get; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26053245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档