Tôi đang viết một số Mẫu tùy chỉnh Resarper để cảnh báo cho chúng tôi về một số cấu trúc mã cần chú ý. Một trong số đó được thay thế OnpropertyChanged ("String") với một biến lambda OnPropertyChanged (() => PROPERTYNAME)Chỉnh sửa mẫu tùy chỉnh: Bỏ qua thuộc tính thuộc tính
Các mô thức tìm kiếm tôi được định nghĩa là:
public $type$ $property$
{
get { return $backingfield$; }
set
{
if($backingfield$ != value) {
$backingfield$ = value;
OnPropertyChanged($String$);
}
}
}
mô hình này đã được thay thế bằng:
public $type$ $property$
{
get { return $backingfield$; }
set
{
if($backingfield$ != value) {
$backingfield$ = value;
OnPropertyChanged(() => $property$);
}
}
}
Sự cố: Khi áp dụng điều này, Resharper sẽ loại bỏ các thuộc tính được xác định trên thuộc tính. đoạn này:
[MyAttribute]
public int Test
{
get { return _Test; }
set
{
if (_Test != value)
{
_Test = value;
OnPropertyChanged("Test");
}
}
}
được thay thế bằng
public int Test
{
get { return _Test; }
set
{
if (_Test != value)
{
_Test = value;
OnPropertyChanged(() => Test);
}
}
}
Làm thế nào tôi có thể giữ các thuộc tính ??
CẬP NHẬT: Thêm trình giữ chỗ kiểu bắt nguồn từ System.Attribute cho cả tìm kiếm và thay thế sửa một phần.
[$Attributes$]
...
Còn lại vấn đề là các thuộc tính placeholder chỉ phù hợp với một thuộc tính, nó không thành công trên nhiều thuộc tính.
Bạn có thực sự cần tìm kiếm toàn bộ tài sản không? Có lẽ bạn chỉ có thể tìm kiếm 'OnPropertyChanged ($ String $);' và thay thế nó bằng 'OnPropertyChanged (() => $ String $);'. – brgerner
Khi thực hiện việc này, OnpropertyChanges ("test") được thay thế bằng OnPropertyChanged (() => "test"). Trình giữ chỗ thử nghiệm được định nghĩa là biểu thức của chuỗi loại. – Yoeri
Bạn nói đúng. Đó là sai lầm của tôi. – brgerner