Я новичок в VSTO и разрабатываю надстройку для Outlook, которая позволит конечным пользователям отслеживать отношения между контактами. Отношения хранятся в отдельной базе данных SQL, и я помещаю идентификатор строки данных SQL в пользовательское свойство, прикрепленное к контакту Outlook. К сожалению, если пользователь когда-либо просматривает панель «Все поля», этот идентификатор отображается в разделе «Определяемые пользователем поля для этого элемента». Есть ли способ запретить пользователю видеть (и, что более важно, редактировать) эти свойства?
VSTO: скрыть свойства контакта
Ответы (1)
Я не верю, что есть какой-либо способ «прикрепить» данные к контактам OL, которые не могут быть видны пользователю.
С другой стороны, у вас может быть поле в вашей БД, которое отслеживает идентификатор контакта (я забыл точное имя поля навскидку, но я знаю, что каждый контакт имеет уникальное ключевое значение, связанное с ним), а затем использовать ЭТО при получении данных в вашей базе данных SQL.
Единственная проблема с этим подходом заключается в том, что у Outlook есть привычка сбрасывать это значение PK, когда вы делаете определенные вещи (например, перемещаете контакт из одной папки в другую, Outlook обрабатывает это как DELETE/ADD, поэтому PK для контакта изменится ).
Кажется, я припоминаю, что в какой-то момент использовал гибридный подход, который делал ОБА (сохранял PK контакта в SQL, а настраиваемое поле в контакте сохранял идентификатор SQL), а затем просто поддерживал их синхронизацию. Но, насколько я помню, было немного больно.
в качестве альтернативы, если пользователь переместил контакт, ВЫ также можете обработать его как DELETE/ADD и обновить свой SQL, если это применимо.