Never write a result wrapper again! Outcome.NET is a simple, powerful helper for methods that return a value, but sometimes also need to return validation messages, warnings, or a success bit.
Branch: master
Clone or download
Brian MacKay
Brian MacKay Bumped to 2.9.5
Fixed an issue where StatusCode was not included in FromOutcome. Changed this so that StatusCode is now backed by the Keys dictionary. Since StatusCode is a property, it should still be serialized the same way, so this is not a breaking  change for the edge case where an Outcome is serialized to Json and StatusCode is expected.
Latest commit 4b96527 Oct 9, 2018

What is Outcome.NET?

Outcome is the ultimate result wrapper! It's great for those awkward moments when you need to return a value, but you might also need to return a list of validation messages, warnings, or a success bit.

It's a fluent, expressive, easy-to-learn spin on the Notification pattern, with a few careful tweaks.

Outcome is particularly useful in MVC projects that do a lot of AJAX calls. If you serialize Outcome objects back to the client, you end up with a standard interface for most of your callbacks, and that opens doors for reuse on the JavaScript side.

How can I get started?

Check out the getting started guide.

Where can I get it?

First, install NuGet. Then, install Outcome.NET from the package manager console:

PM> Install-Package Ether.Outcomes

Outcome.NET is Copyright © 2014 Brian MacKay, Kinetiq, and other contributors under the MIT license.