diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs index adeef7fbf..2bebf0bcd 100644 --- a/src/Orchard.Specs/Bindings/WebAppHosting.cs +++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs @@ -93,13 +93,14 @@ namespace Orchard.Specs.Bindings { _webHost = new WebHost(_orchardTemp); Host.Initialize(siteFolder, virtualDirectory ?? "/", _dynamicCompilationOption); var shuttle = new Shuttle(); - Host.Execute(() => { - log4net.Config.BasicConfigurator.Configure(new CastleAppender()); - HostingTraceListener.SetHook(msg => shuttle._sink.Receive(msg)); - }); + Host.Execute(() => Executor(shuttle)); _messages = shuttle._sink; } + private static void Executor(Shuttle shuttle) { + HostingTraceListener.SetHook(msg => shuttle._sink.Receive(msg)); + } + private class CastleAppender : IAppender { public void Close() { } public string Name { get; set; } diff --git a/src/Orchard.Specs/Hosting/SerializableDelegate.cs b/src/Orchard.Specs/Hosting/SerializableDelegate.cs index 082acfd76..13162100e 100644 --- a/src/Orchard.Specs/Hosting/SerializableDelegate.cs +++ b/src/Orchard.Specs/Hosting/SerializableDelegate.cs @@ -68,7 +68,7 @@ namespace Orchard.Specs.Hosting { TargetInstance = Activator.CreateInstance(classType); foreach (FieldInfo field in classType.GetFields()) { - if (typeof (Delegate).IsAssignableFrom(field.FieldType)) + if (typeof (TDelegate).IsAssignableFrom(field.FieldType)) //If the field is a delegate field.SetValue(TargetInstance, ((SerializableDelegate)info.GetValue(field.Name, typeof(SerializableDelegate))).Delegate); else if (!field.FieldType.IsSerializable) @@ -86,8 +86,12 @@ namespace Orchard.Specs.Hosting { foreach (FieldInfo field in targetType.GetFields()) { //See corresponding comments above - if (typeof (Delegate).IsAssignableFrom(field.FieldType)) - info.AddValue(field.Name, new SerializableDelegate((TDelegate)field.GetValue(TargetInstance))); + if (typeof (TDelegate).IsAssignableFrom(field.FieldType)) { + var value = (TDelegate)field.GetValue(TargetInstance); + if (value != null) { + info.AddValue(field.Name, new SerializableDelegate(value)); + } + } else if (!field.FieldType.IsSerializable) info.AddValue(field.Name, new AnonymousClassWrapper(field.FieldType, field.GetValue(TargetInstance))); else