2017-05-08 2 views
0

ListItemAllFields je le code suivant:ne contient pas de définition pour

public void ChangeFolderPermission() 
{ 
    SP.ClientContext ctx = new SP.ClientContext("https://sharepoint.oshirowanen.com/sites/oshirodev/"); 
    ctx.Credentials = new NetworkCredential("user", "pass", "domain"); 

    SP.Principal user = ctx.Web.EnsureUser("accountName"); 
    var folder = ctx.Web.GetFolderByServerRelativeUrl("folderUrl"); 
    var roleDefinition = ctx.Site.RootWeb.RoleDefinitions.GetByType(SP.RoleType.Reader); //get Reader role 
    var roleBindings = new SP.RoleDefinitionBindingCollection(ctx) { roleDefinition }; 
    folder.ListItemAllFields.BreakRoleInheritance(true, false); //set folder unique permissions 
    folder.ListItemAllFields.RoleAssignments.Add(user, roleBindings); 
    ctx.ExecuteQuery(); 
} 

mais les lignes suivantes:

folder.ListItemAllFields.BreakRoleInheritance(true, false); //set folder unique permissions 
folder.ListItemAllFields.RoleAssignments.Add(user, roleBindings); 

donne ce message d'erreur:

'Microsoft.SharePoint.Client.Folder' does not contain a definition for 'ListItemAllFields' and no extension method 'ListItemAllFields' accepting a first argument of type 'Microsoft.SharePoint.Client.Folder' could be found (are you missing a using directive or an assembly reference?) 

Je la références de projet suivantes

Microsoft.SharePoint.Client 
microsoft.SharePoint.Client.Runtime 

Je la directive à l'aide suivante

using SP = Microsoft.SharePoint.Client; 

pourquoi Toute idée que je reçois cette erreur?

L'application est un winform qui s'exécute à partir d'un environnement de bureau.

+0

question stupide de ma part, mais ne vous devez utilisez SP.folder lors de la définition de l'objet dossier ou si le compilateur est suffisamment intelligent pour connaître le type de retour en fonction de la fonction que vous avez appelée. – Eric

Répondre