2017-05-11 1 views
0

J'ai mal à suivre ce guideObtenir SharePoint Titre du site

http://dotnetbyexample.blogspot.co.uk/2011/03/sharepoint-client-object-model-sites.html

J'ai créé la classe d'aide comme conseillé:

namespace TestSharepoint 
{ 
    public class SharepointHelper 
    { 
    private ClientContext clientContext; 
    private Web rootWeb; 

    public SharepointHelper(string url, string username, string password) 
    { 
     clientContext = new ClientContext(url); 
     var credentials = new NetworkCredential(username, password, "oshirowanen.com"); 
     clientContext.Credentials = credentials; 
     rootWeb = clientContext.Web; 
     clientContext.Load(rootWeb); 
    } 
    } 
} 

Cependant, je ne veux pas créer un autre site, comme j'ai déjà un site, donc je voulais tester la partie suivante en récupérant le titre des sites existants:

public Web GetWebByTitle(string siteTitle) 
{ 
    var query = clientContext.LoadQuery(
    rootWeb.Webs.Where(p => p.Title == siteTitle)); 
    clientContext.ExecuteQuery(); 
    return query.FirstOrDefault(); 
} 

et a ajouté à l'événement de chargement de formulaire:

var sh = new SharepointHelper("https://sharepoint.oshirowanen.com/sites/oshirodev/", "sharepoint_admin_user", "sharepoint_admin_password"); 
var w = sh.GetWebByTitle("Oshirowanen SharePoint"); 
Console.WriteLine(w.Title); 

Ce que je veux confus au sujet, pourquoi je tape dans le titre du site que je souhaite recevoir le titre de ??? Donc je pense que je ne l'utilise pas correctement?

L'erreur que je reçois est:

An unhandled exception of type 'System.NullReferenceException' occurred in SharePointProgramming.exe 

Additional information: Object reference not set to an instance of an object. 

Toute idée de ce que je fais mal?

Le nom d'utilisateur et le mot de passe que j'ai utilisés ont des privilèges SharePoint complets.

J'utilise Visual Studio 2013, C#, .NET 4.0 et SharePoint 2010.

+0

assurez-vous que "Oshirowanen SharePoint" est un sous-site Web du site collection/sites/oshirodev /. Si "Oshirowanen SharePoint" = rootWeb que dans ne sera pas visible dans la collection rootWeb.Webs. – tinamou

Répondre

1

Pour récupérer le titre du site votre juste besoin de la valeur de la web.title variable.

namespace TestSharepoint 
{ 
    public class SharepointHelper 
    { 
    private ClientContext clientContext; 
    private Web rootWeb; 

    public SharepointHelper(string url, string username, string password) 
    { 
     clientContext = new ClientContext(url); 
     var credentials = new NetworkCredential(username, password, "oshirowanen.com"); 
     clientContext.Credentials = credentials; 
     rootWeb = clientContext.Web; 
     clientContext.Load(rootWeb,web=>web.title); 
    clientContent.ExecuteQuery(); 
    string siteTitle=web.title; 
      } 
      } 
     }