2014-11-21 6 views
0

У меня есть вопрос. Я хотел бы сделать что-то вроде этого:пользовательский атрибут для строкового свойства

[PutStars] 
public string telephone 

где PutStars может быть пользовательский атрибут, например.

PutStars действует на строку, поэтому она заменяет значение телефона [333-123456789] и при получении значения извлекает, например, [333-12xxxx789].

Возможно ли это?

Большое спасибо!

+0

Какой у вас проект? Веб, WPF, ...? –

+0

Если я правильно вас понимаю, вы не можете сделать что-то подобное с атрибутами. Вам нужен вспомогательный метод, который выполняет эту работу за вас. –

+0

У меня есть веб-проект – user2328912

ответ

1

Ну, вы можете реализовать вспомогательный метод и вызвать его при получении значения:

private string _tel; 
public string Tel 
{ 
    set{ _tel = value; } 
    get { 
    return _tel.PutStars(); 
    } 
} 

public static string PutStars(this string str) 
{ 
return str.Replace("1", "*"); 
} 

В качестве альтернативы, когда вы получаете строку, которую вы можете сделать:

var starred = myObj.Tel.PutStars(); 
1

ближайшими вы получите к этому встроенный, вероятно, будет [PasswordPropertyText], но a: предназначен для маскирования всего поля и b: он полностью зависит от структуры пользовательского интерфейса, которую вы используете для поиска этого атрибута; в атрибутах нет ничего автоматического. Лучше всего, если честно, вероятно, добавить второе свойство, который используется для связывания интерфейса:

public string Telephone {get;set;} 

public string TelephoneMasked { 
    get { /* your code here */ } 
} 

и связываются с TelephoneMasked.

+0

У меня нет привязки ui. Мне нужна ценность для других целей ..! – user2328912

Смежные вопросы