Самый простой подход здесь - добавить свойство к типу. Если это сгенерировано (возможно, EF и т. Д.), Тогда используйте partial class
:
namespace Whatever {
partial class FinancialInstitution {
public string EntityCaption {
get {return "(" + EntityCode + ") - " + EntityNameDesc;
}
}
}
Если это DataTable
, вы можете добавить вычисляемый столбец. Если этот тип находится вне вашего контроля, возможно сделать это (непосредственно для типа), используя собственный дескриптор типа (через TypeDescriptionProvider
), но это очень сложно. Вместо этого я бы предпочел инкапсулировать экземпляр, добавив сквозные свойства, имитирующие инкапсулированный класс, и добавив новый:
class MyShim {
private readonly FinancialInstitution inner;
public MyShim(FinancialInstitution inner) {this.inner = inner;}
public string EntityCode { get {return inner.EntityCode;}}
public string EntityNameDesc { get {return inner.EntityNameDesc;}}
public string EntityCaption {
get {return "(" + EntityCode + ") - " + EntityNameDesc;
}
}
и вместо этого связывайтесь с прокладками.