2010-10-04 8 views
5

He escrito un par de carpetas modelo personalizado ahora, y se han dado cuenta de que he caído en la trampa de confiar en las cadenas mágicas, por ejemplo:¿Cómo puedo eliminar cadenas mágicas de carpetas de modelo personalizadas?

if (bindingContext.ValueProvider.ContainsPrefix("PaymentKey")) 
    { 
     paymentKey = bindingContext.ValueProvider.GetValue("PaymentKey").AttemptedValue; 
    } 

Me gustaría ser capaz de utilizar una expresión para escribir fuertemente los nombres de los prefijos, pero no puede entender cómo y agradecería alguna ayuda.

Gracias.

+0

Se puede crear una clase estática para mantener los valores de cadena como las propiedades y hacer referencia a las propiedades en su lugar. Por ejemplo: bindingContext.ValueProvider.ContainsPrefix (SomeClass.PaymentKey) –

Respuesta

1

Lo que se busca es bindingContext.ModelName lo que el código podría llegar a ser:

if (bindingContext.ValueProvider.ContainsPrefix(bindingContext.ModelName)) 
    { 
     paymentKey = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue; 
    } 
+0

Gracias por la respuesta, pero no, esto no es lo que estoy buscando. Tal vez mi pregunta podría haber sido más clara, pero estaba buscando una manera de evitar el uso de cadenas de magia para cada propiedad, no el modelo en su conjunto. Gracias de cualquier manera. –

Cuestiones relacionadas