views:

244

answers:

7

I'm trying to write some documentation for a webservice that has been provided by one of our vendors for an application we're integrating. A bunch of the interface is custom objects defined in the web service itself. The vendor has put up significant resistance to providing any documentation for this application and so I've taken it upon myself to do their job for them [against my better judgement].

The documentation they have provided frankly is embarassing and I'm trying to make as short work of this as I possibly can to put some good quality docs together. I know that as I don't have access to their source, I can't just run it through nDoc/Sandcastle to spit out an API doc, but I was wondering if (as a half way house) there was an easy way to export the intellisense to a text file without me having to write a utility to specificially iterate through each of the object types defined and reflect the members out to text?

If I could do this, it would at least make sure that I have a good quality document structure where I can just fill in the blanks. Having to skip back and forth to Visual Studio to check the intellisense for every class member is a very laborious way of doing this.

Does anyone have any ideas?

+2  A: 

Could you use Reflection to dump out the methods etc.?

Reflection is the feature in .Net, which enables us to get some information about object in runtime. That information contains data of the class. Also it can get the names of the methods that are inside the class and constructors of that object.

nzpcmad
I'd thought about that, but didn't really want to have to put my programming hat on to complete the documentation. If I have to do it that way, I will - but I was hoping someone had an easy trick to do this.
BenAlabaster
A: 

If you have the dll's could you not decompile them and then recompile and use nDoc? That should give you a reasonalbe start.

Rune Grimstad
I don't have the DLL's its a WebService we're accessing remotely, so this isn't an option.
BenAlabaster
If it's a web service then you have the WSDL. You should be able to use it to generate documentation.
Rune Grimstad
A: 

Could you just use reflector (from redgate) to view the assembly (decompiled) instead of reproducing a API document. I'm not sure what else you would get of reflecting and building your on document that you wouldn't see live in reflector (of course this would depend on their writing readable code.

confusedGeek
A: 

Maybe this is crazy, but could you take a screenshot of the full listing, and run it through an OCR program?

JosephStyons
+1  A: 

I think VS.net generates documentation for intellisense. For existing assemblies, it is already on your file system (e.g. C:\Windows\Microsoft.NET\Framework\v2.0.50727\en)

Try using the assembly from the vendor in VS.NET. Use process explorer or any such tool from sysinternals to see what files are being loaded. I am sure, you will find that there is an xml file created for the custom assembly (which is used to show the Intellisense and documentation available with it).

Hope that helps.

EDIT: I think the same folder (where your custom assemblies are located) will have the xml files for documentation.

shahkalpesh
+4  A: 

If it is a web service that you are trying to document, couldnt you then parse out the WSDL?

Victor
+2  A: 

If you are accessing a remote Web Service, then I think you have access to the corresponding WSDL: what about parsing it and look for just the information you need? Or using a tool to do this (I Googled for "wsdl documentation generator")? Or even using WSDL.exe to generate some dummy code from the WSDL and then document it, perhaps helped by GhostDoc? HTH

Fabrizio C.