CHunky Universe of Vigourous Astonishing SHarepoint :)

WithWeb-pattern of Jonas Nilsson

Jonas Nilsson shows an interesting approach for working with SPSite and SPWeb which must be disposed. Create a helper method WithWeb and send an Action parameter:

public void WithWeb(string uri, Action<SPWeb> action)
    using (SPSite site = new SPSite(uri))
        using (SPWeb web = site.OpenWeb())

Here is my implementation of this pattern:

public static class DisposalService
    public static void WithWeb(string uri, Action<SPWeb> action)
        using (var site = new SPSite(uri))
            using (var web = site.OpenWeb())
    public  static void WithElevatedWeb(string uri, Action<SPWeb> action)
        SPSecurity.RunWithElevatedPrivileges(() => WithWeb(uri, action));

Here I use another fancy way to consolidate the unsafe updates. I added an additional method: WithElevatedWeb, it creates the web as system account.

And here comes an example of using this static method:

Action<SPWeb> update = (SPWeb w) =>
                            UserService.UpdateOwners(owners, w);
                            UserService.UpdateMembers(members, w);
DisposalService.WithWeb(SPContext.Current.Web.Url, update);

2 responses to “WithWeb-pattern of Jonas Nilsson

  1. Pingback: Do an unsafe update in a unified manner « Sharepoint. Kunskap. Upptäckter på resan.

  2. Pingback: No more ‘using’ statements! WithWeb-Pattern. « discoveringsharepoint

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Daniel Chronlund Cloud Tech Blog

News, tips and thoughts for Microsoft cloud fans

Вула Чăвашла

VulaCV - Чăвашла вулаттаракан сайт

Discovering SharePoint

And going crazy doing it

Bram de Jager - Architect, Speaker, Author

Microsoft 365, SharePoint and Azure

SharePoint Dragons

Nikander & Margriet on SharePoint

Mai Omar Desouki

PFE @ Microsoft

Cameron Dwyer

Office 365, SharePoint, Azure, OnePlace Solutions & Life's Other Little Wonders


Me and My doings!

Share SharePoint Points !

By Mohit Vashishtha

Jimmy Janlén "Den Scrummande Konsulten"

Erfarenheter, synpunkter och raljerande om Scrum från Jimmy Janlén

Aryan Nava

DevOps, Cloud and Blockchain Consultant


SharePoint for everyone


Ryan Dennis is a SharePoint Solution Architect with a passion for SharePoint and PowerShell

SharePoint 2020

The Vision for a Future of Clarity

Aharoni in Unicode

Treacle tarts for great justice

... And All That JS

JavaScript, Web Apps and SharePoint


Mostly what I know and share about...

%d bloggers like this: