#region --------------- Copyright Dresser Wayne Pignone -------------
/*
* $Log: /Wrk/WayneLibraries/Wrk/Log/EventLogEntry.cs $
*
* 2 08-02-13 9:26 Mattias.larsson
* FxCop fixes.
*/
#endregion
using System.Xml;
using System.Diagnostics.CodeAnalysis;
namespace Wayne.Lib.Log
{
///
/// LogEntry for Events.
///
public class EventLogEntry : LogEntry
{
#region Construction
///
/// Constructor.
///
///
/// The object to log.
[SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "object")]
public EventLogEntry(IIdentifiableEntity entity, object logObject)
: base(entity, logObject)
{
LogLevel = DebugLogLevel.Normal;
}
///
/// Constructor.
///
///
/// The object to log.
///
[SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "object")]
public EventLogEntry(IIdentifiableEntity entity, object logObject, object category)
: base(entity, logObject, category)
{
LogLevel = DebugLogLevel.Normal;
}
///
/// Constructor.
///
/// XML node.
[SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", MessageId = "System.Xml.XmlNode")]
public EventLogEntry(XmlElement logEntryNode)
: base(logEntryNode)
{
LogLevel = DebugLogLevel.Normal;
}
///
/// Log level of this log entry.
///
public DebugLogLevel LogLevel { get; set; }
#endregion
///
/// Deserializing from an XML-element.
///
///
///
[SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", MessageId = "System.Xml.XmlNode")]
public static DeserializedLogEntry Deserialize(XmlElement xmlElement)
{
/*
string typeName = "Wayne.Lib.Log.EventLogEntry";//"xmlElement.Attributes["ReflectionType"].Value;
string assemblyNameString = "Wayne.Lib.Log";// xmlElement.Attributes["Assembly"].Value;
AssemblyName name = new AssemblyName();
name.Name = assemblyNameString;
// : If assembly is not found, create a plain log entry....
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(name);
Type type = assembly.GetType(typeName);
ConstructorInfo ci = type.GetConstructor(new Type[] { typeof(XmlElement) });
if (ci != null)
{
return ci.Invoke(new object[] { xmlElement }) as LogEntry;
}
*/
//If the deserialization did not succeed, deserialize into an ordinary log entry.
return new DeserializedLogEntry(xmlElement);
}
}
}