Отвратительно. На каждом шагу приходится гуглить атрибуты и обмазывать ими код. Но ничего лучше в сишарпе не будет. Используй их или... Хочешь поговорить про фшарп?
+, каждый раз пытаюсь начать с ними что то новое, каждый раз понимаю, что я чуть ли не единственный человек который это пытается делать, а значит львиная доля библиотек сторонних все ещё требует обмазывать
Даст это то, что ты не сможешь просто так написать в коде ProjectDto.BuildFrom(myProject).Name, потому что метод BuildFrom помечен как потенциально возвращающий null.