Generate your own SPBuiltInFieldId class
SharePoint ships with the SPBuiltInFieldId class which allows you to access the ID’s of all the out-of-the-box available fields using intellisense. This is very important in scenarios when your solution heavy relies on custom development and working with list items. The SPBuiltInFieldId class makes working with Content Types and Columns easier: instead of typing the names you can use the Properties of the SPBuiltInFieldId and get to all the standard SharePoint fields using intellisense.
While the SPBuiltInFieldId makes working with standard SharePoint fields easier there is no built in support for your custom created Fields. While you could manually create and maintain a similar class it would be a very tedious process: first of all you would have to copy the contents of your Feature manifest and then make a class of it. Additionally each change made to the Columns/Content Types would have to be reflected in two places: Feature Manifest and the wrapper class. You should know better than that.
T4 once again
In my last article I showed you how to create a T4 template for generating the Feature.xml file. Using a similar concept you can make a T4 template generate a wrapper class for your custom fields:
All you have to do is to set the name of the group to which all your custom belong and the template will do the rest for you:
And then you can use your wrapper class for retrieving field values:
To make the wrapper class even more useful I have included some extra information about each field like Display Name, Internal Name and the Field Id:
Even more T4
Depending on how many custom fields your solution includes, having them all in a single class might work counter productive. By modifying the T4 template a little, you can make it generate a separate wrapper class for each Content Type which contains all the fields:
Download FieldId T4 Template from CodePlex (2KB, TT)
Download ContentTypes T4 Template from CodePlex (2KB, TT)
Technorati Tags: SharePoint,SharePoint 2007,WSS 3.0,MOSS 2007,Visual Studio