Colin Mackay
Colin Mackay

Reputation: 19175

Umbraco Document.getProperty(...).Value throws Null Reference Exception

I am writing a small app that links into Umbraco (a small stand-alone console application that will eventually run as a scheduled task on the server) and I'm using the Umbraco APIs (4.5.2) to make changes to the database/document.

Here is a fragment of what I'm doing:

IEnumerable<Document> documents = Document.GetChildrenForTree(parentDocumentId);
foreach (Document doc in documents.Where(d => d.Published))
{
    doc.getProperty("myData").Value = "some data"; // Exception here
    // ...other stuff here...
}

However I always get a NullReferenceException because there are no properties. This confuses me because I can see that there are 5 properties in the umbraco interface.

A colleague suggested that I use a Node instead of a document, however I can't even create one as I get a NullReferenceException from the Node class constructor.

Node myNode = new Node(-1); // NullReferenceException here

Does anyone have any ideas?

Upvotes: 1

Views: 2261

Answers (3)

Jamie Howarth
Jamie Howarth

Reputation: 3323

I checked out the 4.5.2 source recently, to find that populating Document and Node objects only requires a connection using umbracoDbDsn. So if you have an AppSetting called umbracoDbDsn which points to a valid Umbraco database instance, you'll be good.

HTH,

Benjamin

Upvotes: 0

AyKarsi
AyKarsi

Reputation: 9675

Another way of achieving this could be to use linq2umbraco. for further details see http://our.umbraco.org/forum/core/41-feedback/7699-UmbracoLinq-in-console-app--Having-some-troubles

Upvotes: 0

Elijah Glover
Elijah Glover

Reputation: 1976

The document class gets/sets information from the umbraco database. Since your running code in an out of band console application it can't find the umbraco context. Therefore throwing a null reference exception.

You need to run the code inside of the umbraco process. There is a asmx webservice that exists for third party integration. /umbraco/webservices/api/documentservice.asmx

Upvotes: 2

Related Questions