Dll2mmd is a dotnet tool for generating mermaid.js class-diagram from assemblies.
-
Install .Net SDK 6.0 or later.
-
Install dll2mmd as a global dotnet tool.
$ dotnet tool install --global dll2mmd You can invoke the tool using the following command: dll2mmd Tool 'dll2mmd' (version '1.0.5') was successfully installed.
Description:
Generate mermaid.js class-diagram from .net dll files.
Usage:
dll2mmd [options]
Options:
-o, --output <output> Output file. [default: output.md]
-ns, --namespace <namespace> Namespace from which to fetch classes. []
-f, --files <files> (REQUIRED) Dll files from which to fetch classes.
-t, --type-names <type-names> Name of specific classes to form the diagram. []
--ignore-dependency If true, only dependency of inheritance and implementation would be generated.
--version Show version information
-?, -h, --help Show help and usage information
-
Generate Zoo.dll by compiling following file.
namespace Zoo; public interface IAnimal { string Name { get; set; } IFood FavorateFood { get; set; } void Speak(); } public abstract class Mammal : IAnimal { public string Name { get; set; } public IFood FavorateFood { get; set; } public abstract void Speak(); protected Mammal(string name, IFood favorateFood) { Name = name; FavorateFood = favorateFood; } } public class Cat : Mammal { public Cat(string name, IFood favorateFood) : base(name, favorateFood) {} public override void Speak() { Console.WriteLine("meow"); } } public class Dog : Mammal { public Dog(string name, IFood favorateFood) : base(name, favorateFood) { } public override void Speak() { Console.WriteLine("woof"); } } public interface IFood { string Taste { get; set; } } public class Fish : IFood, IAnimal { public string Taste { get; set; } public string Name { get; set; } public IFood FavorateFood { get; set; } public Fish(string taste, string name, IFood favorateFood) { Taste = taste; Name = name; FavorateFood = favorateFood; } public void Speak() { Console.WriteLine("..."); } } public class Bone : IFood { public string Taste { get; set; } public Bone(string taste) { Taste = taste; } }
-
Run dll2mmd to generate output.md from Zoo.dll.
$ dll2mmd -f Zoo.dll
-
output.md
classDiagram class IAnimal IAnimal : +String Name IAnimal : +IFood FavorateFood IAnimal : +Speak() Void class Mammal Mammal : +String Name Mammal : +IFood FavorateFood Mammal : +Speak() Void class Cat Cat : +String Name Cat : +IFood FavorateFood Cat : +Speak() Void class Dog Dog : +String Name Dog : +IFood FavorateFood Dog : +Speak() Void class IFood IFood : +String Taste class Fish Fish : +String Taste Fish : +String Name Fish : +IFood FavorateFood Fish : +Speak() Void class Bone Bone : +String Taste IAnimal <|.. Mammal Mammal <|-- Cat Mammal <|-- Dog IFood <|.. Fish IAnimal <|.. Fish IFood <|.. Bone