Изпълних Code Analysis на един от моите проекти и това ме размаха два пъти с пръст, а именно:
CA1063 Правилно внедряване на IDisposable Осигурете заменимо изпълнение на Dispose(bool) на „UserStore“ или маркирайте типа като запечатан. Извикването на Dispose(false) трябва да почиства само собствените ресурси. Извикването на Dispose(true) трябва да изчисти управляваните и собствените ресурси.
...на този ред код:
public class UserStore : IUserStore<User>, IUserPasswordStore<User>, IUserClaimStore<User>
...и този:
CA1063 Правилно внедряване на IDisposable Модифициране на 'UserStore.Dispose()', така че да извиква Dispose(true), след това извиква GC.SuppressFinalize на текущия екземпляр на обект ('this' или 'Me' във Visual Basic) и след това връща .
...на моя празен Dispose:
public void Dispose()
{
//
}
Мога ли да убия двама птици с една вкаменена буца мръсотия, като направя следното:
public override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
? Това ли предполага?
АКТУАЛИЗИРАНЕ
За да отговоря на въпроса си (нещо като), очевидно не - реших, че просто ще добавя кода и ще видя дали анализът на кода след това ще върне обратно желания „'NRBQ.API.UserStore.Dispose()': не е подходящ метод е намерен за отмяна"