KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to asynchronously log some information to SQL Server inside of an MVC 4 controller action targeting .NET 4.0 using the AsyncTargetingPack. I would jump straight to .NET 4.5 but my app lives in Azure and we're still waiting for the update ... This code works as expected (a row is written to my database with no exceptions thrown): public class SystemActionLogger : ISystemActionLogger { private readonly ActionBlock<Tuple<SystemAction, object>> actionBlock; public SystemActionLogger(ISystemActionLogEntryRepository repository) { actionBlock = new ActionBlock<Tuple<SystemAction, object>>( entry => TaskEx.Run(async () => { string data = await JsonConvert.SerializeObjectAsync(entry.Item2); await repository.PersistAsync(new SystemActionLogEntry(entry.Item1, data)); })); } public void Log(SystemAction systemAction, object data) { actionBlock.Post(new Tuple<SystemAction, object>(systemAction, data)); } } And this code throws a NullReferenceException: public class SystemActionLogger : ISystemActionLogger { private readonly ActionBlock<Tuple<SystemAction, object>> actionBlock; public SystemActionLogger(ISystemActionLogEntryRepository repository) { actionBlock = new ActionBlock<Tuple<SystemAction, object>>(async entry => { string data = await JsonConvert.SerializeObjectAsync(entry.Item2); await repository.PersistAsync(new SystemActionLogEntry(entry.Item1, data)); }); } public void Log(SystemAction systemAction, object data) { actionBlock.Post(new Tuple<SystemAc
Tags (comma-separated)
Save Edits
Cancel