Ссылка на объект не установлена в экземпляр объекта при чтении свойств файла из SP2010

У меня есть библиотека документов sharepoint, которая имеет настраиваемое поле под названием "DocumentType", это необязательное поле. Когда я пытаюсь прочитать это свойство, используя приведенный ниже код, когда в этом поле есть значение, оно работает нормально, но где его значение пустое, давая ошибку "Ссылка на объект не установлена в экземпляр объекта". Если значения нет, мне нужно передать пустую строку для дальнейшей логики, как я могу справиться с этим?

SPFile spFile=Web.GetFile(Context.Request.Url.ToString());
string spDocumentType=string.Empty;
if (spFile.Properties["DocumentType"].ToString() == "INV") *In this line exception throwing where value is empty in this field in the doc library.
{
spDocumentType = spFile.Properties["DocumentType"].ToString();
}
2 ответа

сделайте вот так:

if(spFile.Properties["DocumentType"] !=null)
 {
 spDocumentType = spFile.Properties["DocumentType"].ToString() == "INV" ? spFile.Properties["DocumentType"].ToString() : "";

 }
else
{
spDocumentType ="";

}


Измените этот фрагмент кода:

spFile.Properties["DocumentType"].ToString()

К этому:

Convert.ToString(spFile.Properties["DocumentType"])

Хотя ToString() генерирует исключение, которое вы получаете, когда значение равно null, метод Convert.ToString() проверяет значение null и возвращает пустую строку.

licensed under cc by-sa 3.0 with attribution.