Um auf den aktuellen Kontext in Sharepoint zuzugreifen gibt es das SPContext Objekt.
Für den ProjectServer gibt es dementsprechend das PJContext Objekt.
Um die PSI direkt ansprechen zu können, muss das Visual Studio Projekt folgende Verweise beinhalten:
Folgendes Beispiel zeigt einen direkten Zugriff auf den Webservice CustomFields und die Methode ReadCustomFields:
protected void Button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Project.Server.WebServiceProxy.CustomFields
customFieldsService = PJContext.Current.PSI.CustomFieldsWebService;
Microsoft.Office.Project.Server.Schema.CustomFieldDataSet
data = customFieldsService.ReadCustomFields(string.Empty, false);
projectGrid.DataSource = data.CustomFields;
projectGrid.DataBind();
}
Diese Vorgehensweise funktioniert nur bei Webparts, die direkt im Project Web Access eingebunden werden.