Мне нужно знать, какова процедура создания свойства-зависимости только для записи. Я вижу, что класс DependencyProperty не имеет специального метода «Регистрация» для свойств только для записи, но я понятия не имею, может ли метод RegisterAttached применяться к тому, что я пытаюсь сделать.
Это свойство должно быть свойством зависимости, а не простым свойством CLR. Внутренне мой класс требует PropertyChangedCallback для этого свойства, чтобы оставаться стабильным.
Я знаю, что могут быть созданы свойства-зависимости только для записи, потому что это четко указано в:
Pro C# 2008 и платформа .NET 3.5, стр. 1061.
Однако это единственное место, где я могу найти "свойство зависимости " и "только для записи" на одной странице. И этот автор, по-видимому, не считал необходимым показывать читателю процедуру для чего-либо, кроме базового свойства-зависимости чтения-записи. Конечно, эта книга могла быть полной чушью, но эта книга выглядит довольно стандартно, так что я думаю, можно с уверенностью сказать, что автор прав. Я предполагаю, что отсутствие информации в Интернете связано с тем, что обычно никому не нужно делать такую собственность.
Я знаю, что это звучит очень сомнительно, если вы хотите создать собственное свойство-зависимость только для записи. Уверяю вас, это имеет смысл там, где я этого хочу. В моем классе есть свойство, значение которого полезно только для объекта, который его устанавливает. Если бы другой объект впоследствии запросил значение этого свойства, он не смог бы извлечь из этого значения никакого рационального смысла, не зная исходного контекста установщика.
Это свойство не предназначено для использования в информационных целях. Попытки внешних объектов использовать значение свойства таким образом проблематичны, опасны и представляют угрозу безопасности. Поэтому я считаю, что лучший дизайн — запретить операции чтения для этого свойства. Любой, кто использует мой класс, обнаружит, что он вынужден использовать класс так, как он был задуман, что в итоге будет работать намного лучше и чище.