Что ж, поскольку я относительно новичок в Sharepoint 2007, я хотел бы улучшить свой способ написания кода для этой платформы и уточнить некоторые привычки, которые у меня уже есть.
В следующем коде я задаю вопрос о размере документа, который находится в списке «Документы», но у меня создается впечатление, что я создаю множество объектов для доступа к информации. Разве нет возможности сразу перейти к документу (мне нужно получить доступ к de spweb, затем к списку, а затем к документу)?
Одна из вещей, которые я хочу улучшить, - это не использовать oSPWeb.Lists [0], который соответствует oSPWeb.Lists ["Documents"], ни один из них меня не убеждает, потому что этот список можно назвать "Documentos", o "Documents " и т.д...
Пожалуйста, не могли бы вы улучшить этот код?
System.Text.StringBuilder oSb = new System.Text.StringBuilder();
oSb.Append(" <Where>");
oSb.Append(" <Eq>");
oSb.Append(" <FieldRef Name=\"FileLeafRef\" />");
oSb.Append(" <Value Type=\"Text\">"+documento+"</Value>");
oSb.Append(" </Eq>");
oSb.Append(" </Where>");
oSb.Append(" <ViewFields>");
oSb.Append(" <FieldRef Name=\"FileSizeDisplay\" />");
oSb.Append(" </ViewFields>");
string sResult = oSb.ToString();
bool Existe = false;
SPSite sps = null;
SPWeb oSPWeb = null;
SPList oList = null;
SPListItemCollection col = null;
try
{
sps = SPContext.Current.Site;
using(oSPWeb = sps.OpenWeb(url))
{
oList = oSPWeb.Lists[0];
SPQuery qry = new SPQuery();
qry.Query = sResult;
col=oList.GetItems(qry);
}
}
catch { }
if (col != null)
{
//return col[0].File.Length.ToString();
return col[0]["FileSizeDisplay"].ToString();
}
else
{
return null;
}