I've gotten a first version of a procedural dungeon generator written in C#. I aim for this to be compatible with the Unity but at the moment it looks like Unity isn't a fan of a List of Lists. You can see the code on Github and view some generated floor maps in the browser here.
The browser rendererjust renders a bunch of coloured tiles on a canvas. Each colour represents a different piece (inside corner, outside corner) and/or a pieces orientation.
It works by generating a whole bunch of rooms (rectangles). At first I was going to make sure they didn't overlap but the overlapping rooms meant that not every room was just a boring rectangle.
I then use my A* implementation to link all the rooms together by ordering the rooms by distance from origin and then drawing a path from room center to room center. I then double the size of everything (so a tile is now represented by 2 x 2 tile of the same type). I then run over the floor tiles and identify what should be walls, corners etc. By doubling the tiles in the previous step, I can ensure there are no room corners that overlap eachother and can limit the number of tile types to the 20 below although you could use a smaller tileset and just rotate them according to their position.