Enyim is a .NET wrapper for connecting to a Memcached server. Download the Enyim package from Nuget (EnyimMemcached)
<!-- Web.config -->
<configuration>
<configSections>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
<!-- for logging, not required -->
<!--<section name="log" type="Enyim.Caching.Configuration.LoggerSection, Enyim.Caching" />-->
</sectionGroup>
</configSections>
...
<!-- child of configuration -->
<enyim.com>
<!-- for logging, not required, EnyimMemcached-log4net and log4net Nuget packages required for logging -->
<!--<log factory="Enyim.Caching.Log4NetFactory, Enyim.Caching.Log4NetAdapter" />-->
<memcached protocol="Binary">
<servers>
<!-- make sure you use the same ordering of nodes in every configuration you have -->
<add address="my-memcacheserver-at-aws.compute-1.amazonaws.com" port="11211" />
</servers>
</memcached>
</enyim.com>
</configuration>
//C#
//create client
Enyim.Caching.MemcachedClient memCache = new Enyim.Caching.MemcachedClient();
//this object must be marked as serializable
var myObj = new MyObj();
//a unique key is required. I am assuming myObj has an Id field that is unique
string cacheKey = "myObj_" + myObj.Id;
//store object
int secondsToCache = 60;
memCache.Store(Enyim.Caching.Memcached.StoreMode.Set, cacheKey, myObj, DateTime.Now.AddSeconds(secondsToCache));
//get object
object getMyObj1 = memCache.Get(cacheKey);
//or
MyObj getMyObj2 = <MyObj>memCache.Get(cacheKey);