我想为一个ASP.Net MVC 6应用程序创建一个日志系统,它将日志消息链接到特定的对象。
例如:
它将映射到:
到目前为止,我拥有的是一个接收IEnumerable和IEnumerable ids的“日志”方法
例如:
我已经有了所有要保存在数据库中的代码--这个数组,读取它们,将它们转换成枚举,等等。然而,我不知道如何使应用程序的"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)
谢谢!我试着说出所有可能在我脑海里闪过的细节,但如果有什么遗漏的话,我会很乐意补充的。
发布于 2014-09-26 12:13:16
如果我正确理解,您希望读取对象的属性,其类型要到运行时才知道。可以这样做:
var value = myObject.GetType().GetProperty("name").GetValue(myObject, null);
更好的选择是,正如您说的那样,类实现一个接口,就是将该属性放在接口中,并且只接受在日志函数中实现该接口的实例。
public interface MyInterface{
string Name { get; }
}
https://stackoverflow.com/questions/26053245
复制相似问题