2015-06-08 5 views
0

Я создаю Json-файл, и перед созданием я хочу проверить, нет ли какого-либо свойства, которого нет. И я хочу создать для него абстрактный метод. Поэтому мне не нужно писать снова и снова.Каков наилучший способ проверить, является ли какое-либо свойство объекта нулевым или пустым?

public JObject CreatUserJson(Account lacc) 
     { 
      JObject pin = new JObject(
       new JProperty("email", lacc.email), 
       new JProperty("fullname", lacc.fullname), 
       new JProperty("phonenumber", lacc.phonenumber), 
       new JProperty("ip_address", lacc.ip_address), 
       new JProperty("password", lacc.password), 
       new JProperty("client_id", Settings.Globals.CLIENT_ID), 
       new JProperty("client_secret", Settings.Globals.CLIENT_SECRET) 

     ); 
      return pin; 
     } 

Это, как я определен мой метод и есть подобные методы, как это, я хочу стандартный способ проверить и бросить исключение, если любое значение отсутствует ..

public JObject IncomingWireNoticeJson(SyanpasePayLib.Resources.Wire lWire) 
     { 
      JObject pin = new JObject(
       new JProperty("amount", lWire.amount), 
       new JProperty("status_url", lWire.status_url), 
       new JProperty("memo", lWire.memo), 
       new JProperty("oauth_consumer_key", lWire.oauth_consumer_key) 
       ); 
      return pin; 
     } 

Это другой пример метода, нет сходства. Я просто хочу пропустить и исключить исключение, если какое-либо из значений отсутствует.

Например, я знаю CreatUserJson я требую Minimun 4 входа и максимум 8 входов ..

Точно так же для IncomingWireNoticeJson I требуют Minimun 2 входа и максимум 4 входа ..

Если диапазон больше, то или меньше, чем min и max, тогда он должен выбросить ошибку .. (Эта часть я могу управлять, но я не знаю, как определить стандартный способ прокрутки этого объекта)
Может ли кто-нибудь помочь мне с этим ..?

+0

Возможный ответ: http://stackoverflow.com/a/22683199/3199927 – Tom

+0

@Tom Но я хочу minimun и max, я не хочу перебирать все свойства учетной записи класса =, я просто перебираю свойства i определены в моем методе. – nikunjM

+0

Похоже, вам нужна [Json Schema] (http://stackoverflow.com/questions/tagged/jsonschema+c%23). – dbc

ответ

1

Я думаю, что JObject имеет метод Properties(). Таким образом, вы можете просмотреть результаты этого теста и проверить, не являются ли значения не равными нулю.

foreach (JProperty property in pin.Properties()) 
{ 
    if (string.IsNullOrWhiteSpace(property.Value)) 
    { 
     throw new Exception("Some exception"); 
     //Or perform count for minimum/maximum check 
    } 
} 

Минимальная и максимальная проверка также проста, если вы используете метод Properties(). Пример может быть легко переписан с использованием Linq, но для объяснения и расширения логических целей я написал обычную версию.

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