BillBensing / MessageSerializer-CSharp

A message serialize for C#

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MessageSerializer-CSharp

This is a Message Serializer built for Serializing/Deserializing messing into by arrays. Use this library to prepare JSON, XML or Binary(.NET only) message formats for sending and receiving over the wire. I built this to help with my RabbitMQ projects.

This library was inspired by the RabbitMQ tutorials Michael Stephenson created on Pluralsight.

Download from Nuget MessageSerializer

How To Use

You can serialize or deserialize based on provided a supplied enumerable value (MessageType) or a Content-Type string.

Current supported MIME types are:

  • application/json
  • application/octet-stream
  • text/xml

Serialize

You can select the type of message format you'd like to transport your object as.

Using the supplied MessageType enumerator:

var serializeMe = new SomeImportantObject();
byte[] messageBuffer = new Serializer().UseObject(serializeMe).SerializeAs(MessageType.JSON);
YourMethodForTransportingMessage(messageBuffer);
```
Using a Content-Type string:
````C#
var serializeMe = new SomeImportantObject();
byte[] messageBuffer = new Serializer().UseObject(serializeMe).SerializeAs("application/josn");
YourMethodForTransportingMessage(messageBuffer);
```

### Deserialize
When you receive a message, you can deserialize based on the format is was sent to you as.

Using the supplied MessageType enumerator:
````C#
byte[] deserializeMe = SomeReceivedMessage;
var usableObject = new SomeImportantObject();
useableObject = new Deserializer<SomeImportantObject>().UseBuffer(deserializeMe).DeserializeAs(MessageType.JSON);
DoSomethingImportant(useableObject);
```
Using a Content-Type string:
````C#
byte[] deserializeMe = SomeReceivedMessage;
var usableObject = new SomeImportantObject();
useableObject = new Deserializer<SomeImportantObject>().UseBuffer(deserializeMe).DeserializeAs("application/josn");
DoSomethingImportant(useableObject);
```

About

A message serialize for C#

License:GNU General Public License v3.0


Languages

Language:C# 100.0%