我想为ASP.Net MVC 6应用程序创建一个Logging系统,它将日志消息链接到某些对象。
例如:
哪个会映射到:
到目前为止我所拥有的是" Log"接收IEnumerable的方法和IEnumerable ID
例如:
我已经拥有了所有代码,可以在数据库中保存这些数组,阅读它们,将它们转换为枚举等等。但是,我不知道如何制作" View"部分申请。
即,转换Log.Message(一个实例),例如:
User {0} purchased {1}
至User <a href="#">John Apple</a> purchased <a href="#">Box</a>
我需要什么?
来自&#34;日志模型视图&#34;我怎样才能获得&#34;名称&#34;任何模型的属性(查询给定对象,并使用其属性)知道其类型(EnumObjectType)及其ID?
其他详情
所有&#39;型号&#39;可记录的将实现一个包含两个方法的接口,一个ToLinkStructure返回指向该类的给定实例的链接(例如/ User / Details / {0})和一个ToLoggableString,它返回一个快速表示实例的字符串(例如&#34;用户:&#34; + this.username)
谢谢! 我试图提供所有可能在我脑海中浮现的细节,但是如果有什么不足之处,我会很高兴添加它
答案 0 :(得分:0)
如果我理解正确,您希望在运行时读取具有您不知道的类型的对象的属性。这可以这样做:
var value = myObject.GetType().GetProperty("name").GetValue(myObject, null);
更好的选择是,正如您所说的类实现接口,是将该属性放在接口中,并且只接受在日志记录函数中实现此接口的实例。
public interface MyInterface{
string Name { get; }
}