The honorable Mr. Fowler today posted that he's +1 for .NET properties and -1 for reflection's differentiation between the two. His complain is that while you can access both on an object with the same syntax you cannot access them with the same code via reflection.
This is true, but getting around it is simple enough, even if you've already written reflection code to handle fields. The answer: refactor it! Extract your getter/setter code to their own methods and create an additional overload that handles properties. You can get all fields and properties via GetMembers by using the GetFields and GetProperties BindingFlags in addition to whatever criteria you have. While iterating through these members, simply pass your MemberInfo to one of the overloaded methods and you're set.