EventLogEntry.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #region --------------- Copyright Dresser Wayne Pignone -------------
  2. /*
  3. * $Log: /Wrk/WayneLibraries/Wrk/Log/EventLogEntry.cs $
  4. *
  5. * 2 08-02-13 9:26 Mattias.larsson
  6. * FxCop fixes.
  7. */
  8. #endregion
  9. using System.Xml;
  10. using System.Diagnostics.CodeAnalysis;
  11. namespace Wayne.Lib.Log
  12. {
  13. /// <summary>
  14. /// LogEntry for Events.
  15. /// </summary>
  16. public class EventLogEntry : LogEntry
  17. {
  18. #region Construction
  19. /// <summary>
  20. /// Constructor.
  21. /// </summary>
  22. /// <param name="entity"></param>
  23. /// <param name="logObject">The object to log.</param>
  24. [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "object")]
  25. public EventLogEntry(IIdentifiableEntity entity, object logObject)
  26. : base(entity, logObject)
  27. {
  28. LogLevel = DebugLogLevel.Normal;
  29. }
  30. /// <summary>
  31. /// Constructor.
  32. /// </summary>
  33. /// <param name="entity"></param>
  34. /// <param name="logObject">The object to log.</param>
  35. /// <param name="category"></param>
  36. [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "object")]
  37. public EventLogEntry(IIdentifiableEntity entity, object logObject, object category)
  38. : base(entity, logObject, category)
  39. {
  40. LogLevel = DebugLogLevel.Normal;
  41. }
  42. /// <summary>
  43. /// Constructor.
  44. /// </summary>
  45. /// <param name="logEntryNode">XML node.</param>
  46. [SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", MessageId = "System.Xml.XmlNode")]
  47. public EventLogEntry(XmlElement logEntryNode)
  48. : base(logEntryNode)
  49. {
  50. LogLevel = DebugLogLevel.Normal;
  51. }
  52. /// <summary>
  53. /// Log level of this log entry.
  54. /// </summary>
  55. public DebugLogLevel LogLevel { get; set; }
  56. #endregion
  57. /// <summary>
  58. /// Deserializing from an XML-element.
  59. /// </summary>
  60. /// <param name="xmlElement"></param>
  61. /// <returns></returns>
  62. [SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", MessageId = "System.Xml.XmlNode")]
  63. public static DeserializedLogEntry Deserialize(XmlElement xmlElement)
  64. {
  65. /*
  66. string typeName = "Wayne.Lib.Log.EventLogEntry";//"xmlElement.Attributes["ReflectionType"].Value;
  67. string assemblyNameString = "Wayne.Lib.Log";// xmlElement.Attributes["Assembly"].Value;
  68. AssemblyName name = new AssemblyName();
  69. name.Name = assemblyNameString;
  70. // : If assembly is not found, create a plain log entry....
  71. System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(name);
  72. Type type = assembly.GetType(typeName);
  73. ConstructorInfo ci = type.GetConstructor(new Type[] { typeof(XmlElement) });
  74. if (ci != null)
  75. {
  76. return ci.Invoke(new object[] { xmlElement }) as LogEntry;
  77. }
  78. */
  79. //If the deserialization did not succeed, deserialize into an ordinary log entry.
  80. return new DeserializedLogEntry(xmlElement);
  81. }
  82. }
  83. }