Pregunta

Estoy deformando un objeto ArcGIS IFeature con una clase que tiene mis propiedades requeridas para obtenerlas y configurarlas fácilmente. Básicamente, las operaciones de obtención y configuración solo usan feature.get_value (index) y feature.set_value (indes, value) , y exponen el valor fuertemente tipado.
Tengo varios campos que usan un dominio (básicamente, un IDictionary < cadena, objeto > ) para representar propiedades comunes en la aplicación.
Al principio pensé que solo usaría las claves del dominio (que son valores int normales) en mi clase de ajuste, y utilizaría el dominio en mi método ToString () , para traducir a cadenas para la interfaz de usuario .
Más tarde, me di cuenta de que puedo usar cadenas en mi aplicación (lo que hace que sea más fácil pasar nulos, ya que los campos del dominio real son anulables la mayor parte del tiempo), y solo modifico los métodos de obtención y configuración de esos campos para usar GetDomainValue ( índice) y el método SetDomainValue (índice, valor) que se traducirá entre la clave y el valor a / desde el objeto de la característica subyacente.

¿Qué enfoque crees que es mejor? Pensé que el enfoque de la cadena es un poco más "ignorante persistente", ya que a mi clase no le importa cómo se guardan los valores, solo su representación de cadena. Por otro lado, hace que el código salte a través de los bucles un poco, en lugar de devolver lo que está en la característica, cada captador necesita iterar el dominio.

¿Fue útil?

Solución 2

Terminé apegándome a los valores del dominio, de modo que también puedo verificar que el código de llamada haya pasado un valor válido.

Otros consejos

Es posible que desee pensar en representar sus campos de dominio con Nullable < ; Int32 > . Esto le brindaría una forma de representar características que tienen un valor de dominio especificado, pero también le permite especificar directamente null cuando sea apropiado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top