J'ai le code suivant:Code Analyse Avertissement 2214 - Comment corriger au mieux?
public partial class AuditLog : IBusinessEntity
{
public BusinessEntityType EntityType { get { return BusinessEntityType.AuditLog; } }
/// <summary>
/// Constructor accepting parameter initialization arguments
/// </summary>
/// <param name="userName"></param>
/// <param name="entity"></param>
/// <param name="command"></param>
/// <param name="commandText"></param>
public AuditLog(string userName, BusinessEntityType entity, AuditLogCommand command, string commandText)
{
this.Timestamp = DateTime.Now;
this.UserName = userName;
this.Entity = entity.ToString();
this.Command = command.ToString();
this.CommandText = commandText;
}
}
Ce génère un avertissement de CA2214. Les paramètres de méthode BusinessEntityType
et AuditLogCommand
sont les deux énumérations. Je ne vois pas quelle est la question ici, et je ne suis donc pas sûr de savoir comment satisfaire l'avertissement.
Merci.
Il s'avère que la ligne 'this.Entity' a un setter qui appelle une méthode virtuelle. Je suppose que c'était le problème. –
Oui, l'avertissement se déclenche si l'analyseur statique peut voir, que toute méthode virtuelle est appelée pendant le ctor. – driis