Tôi có đoạn mã sau:Phân tích mã Cảnh báo 2214 - Cách khắc phục tốt nhất?
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;
}
}
này là tạo ra một cảnh báo CA2214. Các tham số phương thức BusinessEntityType
và AuditLogCommand
đều là liệt kê. Tôi không thấy vấn đề là gì ở đây, và do đó không chắc chắn làm thế nào để đáp ứng các cảnh báo.
Cảm ơn.
Khi nó chỉ ra dòng 'this.Entity' có một setter gọi một phương thức ảo. Tôi đoán đó là vấn đề. –
Có, cảnh báo sẽ kích hoạt nếu trình phân tích tĩnh có thể thấy, rằng bất kỳ phương thức ảo nào được gọi trong ctor. – driis