User: cneuwirt
Date: 2009/12/30 08:21 AM
Removed:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/
IWcfLifestyle.cs
Modified:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/
WcfClientFixture.cs
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/
IOperations.cs, Operations.cs
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/
Castle.Facilities.WcfIntegration-vs2008.csproj
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/
WcfRemotingAsyncInterceptor.cs
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/TypeSystem/
AsyncMethod.cs
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Proxy/
MethodCallMessage.cs
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/
PerChannelLifestyleExtension.cs, PerWcfSessionLifestyle.cs
Log:
- Minor updates to work with WCF 4.0
- Minor simplification of WCF lifestyle
File Changes:
Directory:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/
===================================================================================
File [modified]: WcfRemotingAsyncInterceptor.cs
Delta lines: +15 -1
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Proxy/MethodCallMessage.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Proxy/MethodCallMessage.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -51,6 +51,11 @@
}
}
+ public ParameterInfo[] Parameters
+ {
+ get { return parameters; }
+ }
+
public string GetArgName(int index)
{
return parameters[index].Name;
@@ -131,11 +136,20 @@
get { return inArguments;}
}
+ public object[] OutArgs
+ {
+ get
+ {
+ return parameters.Where(p => p.IsOut ||
p.ParameterType.IsByRef)
+ .Select((p, i) => Args[i]).ToArray();
+ }
+ }
+
private static Func<LogicalCallContext>
LogicalCallContextBuilder()
{
var type = typeof(LogicalCallContext);
var ctor = type.GetConstructor(BindingFlags.NonPublic |
BindingFlags.Instance, null, Type.EmptyTypes, null);
- var creator = new DynamicMethod("CreateLogicalContext",
type, null, type);
+ var creator = new DynamicMethod("CreateLogicalContext",
type, null, type, true);
var generator = creator.GetILGenerator();
generator.Emit(OpCodes.Newobj, ctor);
Directory: /Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/
======================================================================
File [modified]: Castle.Facilities.WcfIntegration-vs2008.csproj
Delta lines: +6 -6
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/TypeSystem/AsyncMethod.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/TypeSystem/AsyncMethod.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -61,7 +61,7 @@
public override Type ReflectedType
{
- get { throw new NotImplementedException(); }
+ get { return AsyncType; }
}
public override RuntimeMethodHandle MethodHandle
@@ -71,7 +71,7 @@
public override MethodAttributes Attributes
{
- get { throw new NotImplementedException(); }
+ get { return SyncMethod.Attributes; }
}
public MethodInfo SyncMethod { get; private set; }
@@ -110,17 +110,17 @@
public override object[] GetCustomAttributes(bool inherit)
{
- throw new NotImplementedException();
+ return SyncMethod.GetCustomAttributes(inherit);
}
public override bool IsDefined(Type attributeType, bool inherit)
{
- throw new NotImplementedException();
+ return SyncMethod.IsDefined(attributeType, inherit);
}
public override MethodImplAttributes
GetMethodImplementationFlags()
{
- throw new NotImplementedException();
+ return SyncMethod.GetMethodImplementationFlags();
}
public override object Invoke(object obj, BindingFlags
invokeAttr, Binder binder, object[] parameters,
@@ -131,7 +131,7 @@
public override MethodInfo GetBaseDefinition()
{
- throw new NotImplementedException();
+ return this;
}
}
}
Directory: /Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/
============================================================================
File [modified]: WcfClientFixture.cs
Delta lines: +0 -0
===================================================================
Directory:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/
=======================================================================================
File [modified]: IOperations.cs
Delta lines: +26 -5
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/Operations.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/Operations.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -19,7 +19,7 @@
using System.Collections.Generic;
using Castle.Facilities.WcfIntegration.Tests.Behaviors;
- public class Operations : IOperations, IOperationsEx
+ public class Operations : IOperationsEx
{
private readonly int number;
@@ -35,13 +35,20 @@
return number;
}
+ public int GetValueFromConstructorAsRef(ref int refValue)
+ {
+ Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
+ Thread.Sleep(2000);
+ return (refValue = number);
+ }
+
public int GetValueFromConstructorAsRefAndOut(ref int refValue,
out int outValue)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
return (refValue = outValue = number);
}
-
+
public bool UnitOfWorkIsInitialized()
{
return UnitOfWork.initialized;
@@ -63,13 +70,15 @@
}
delegate int GetValueFromConstructor();
+ delegate int GetValueFromConstructorAsRef(ref int refValue);
delegate int GetValueFromConstructorAsRefAndOut(ref int refValue, out
int outValue);
delegate bool UnitOfWorkIsInitialized();
-
+
public class AsyncOperations : IAsyncOperations
{
private readonly Operations operations;
private GetValueFromConstructor getValueCtor;
+ private GetValueFromConstructorAsRef getValueCtorRef;
private GetValueFromConstructorAsRefAndOut getValueCtorRefOut;
private UnitOfWorkIsInitialized uow;
@@ -77,6 +86,7 @@
{
operations = new Operations(number);
getValueCtor = operations.GetValueFromConstructor;
+ getValueCtorRef =
operations.GetValueFromConstructorAsRef;
getValueCtorRefOut =
operations.GetValueFromConstructorAsRefAndOut;
uow = operations.UnitOfWorkIsInitialized;
}
@@ -90,7 +100,18 @@
{
return getValueCtor.EndInvoke(result);
}
-
+
+ public IAsyncResult BeginGetValueFromConstructorAsRef(
+ ref int refValue, AsyncCallback callback, object
asyncState)
+ {
+ return getValueCtorRef.BeginInvoke(ref refValue,
callback, asyncState);
+ }
+
+ public int EndGetValueFromConstructorAsRef(ref int refValue,
IAsyncResult result)
+ {
+ return getValueCtorRef.EndInvoke(ref refValue, result);
+ }
+
public IAsyncResult BeginGetValueFromConstructorAsRefAndOut(
ref int refValue, AsyncCallback callback, object
asyncState)
{
@@ -105,7 +126,7 @@
public IAsyncResult BeginUnitOfWorkIsInitialized(AsyncCallback
callback, object asyncState)
{
- return uow.BeginInvoke(callback, asyncState);
+ return uow.BeginInvoke(callback, asyncState);
}
File [modified]: Operations.cs
Delta lines: +71 -46
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/WcfClientFixture.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/WcfClientFixture.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -52,7 +52,7 @@
new DefaultClientModel()
{
Endpoint =
WcfEndpoint.ForContract<IOperations>()
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations")
}),
Component.For<IServiceBehavior>()
@@ -66,10 +66,10 @@
.DependsOn(new { number = 42 })
.ActAs(new
DefaultServiceModel().AddEndpoints(
WcfEndpoint.ForContract<IOperations>()
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations"),
WcfEndpoint.ForContract<IOperationsEx>()
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations/Ex")
)
),
@@ -102,7 +102,7 @@
.ActAs(new DefaultClientModel()
{
Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations")
})
);
@@ -147,7 +147,7 @@
)))
{
using (IWindsorContainer clientContainer = new
WindsorContainer()
- .AddFacility<WcfFacility>(f =>
f.DefaultBinding =
+ .AddFacility<WcfFacility>(f =>
f.DefaultBinding =
new NetTcpBinding {
PortSharingEnabled = true }
)
.Register(Component.For<IOperations>()
@@ -187,17 +187,23 @@
))
{
IOperations client1 =
clientContainer.Resolve<IOperations>("operations",
- new { Model = new
DefaultClientModel
+ new
{
- Endpoint =
WcfEndpoint.BoundTo(new NetTcpBinding())
-
.At("net.tcp://localhost/Operations2")
- }});
+ Model = new
DefaultClientModel
+ {
+
Endpoint = WcfEndpoint.BoundTo(new NetTcpBinding())
+
.At("net.tcp://localhost/Operations2")
+ }
+ });
IOperations client2 =
clientContainer.Resolve<IOperations>("operations",
- new { Model = new
DefaultClientModel()
+ new
{
- Endpoint =
WcfEndpoint.BoundTo(new NetTcpBinding())
-
.At("net.tcp://localhost/Operations2")
- }});
+ Model = new
DefaultClientModel()
+ {
+
Endpoint = WcfEndpoint.BoundTo(new NetTcpBinding())
+
.At("net.tcp://localhost/Operations2")
+ }
+ });
Assert.AreEqual(28,
client1.GetValueFromConstructor());
Assert.AreEqual(28,
client2.GetValueFromConstructor());
clientContainer.Release(client1);
@@ -323,9 +329,9 @@
.ActAs(new DefaultServiceModel()
.AddBaseAddresses("net.tcp://localhost/Operations")
.AddEndpoints(WcfEndpoint.ForContract<IOperations>()
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("Extended")
- )
+ )
)))
{
using (IWindsorContainer clientContainer = new
WindsorContainer()
@@ -335,9 +341,9 @@
.ActAs(new DefaultClientModel()
{
Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations/Extended")
-
+
})
))
{
@@ -357,7 +363,7 @@
.ImplementedBy<Operations>()
.DependsOn(new { number = 22 })
.ActAs(new
DefaultServiceModel().AddEndpoints(
- WcfEndpoint.BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ WcfEndpoint.BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("urn:castle:operations")
.Via("net.tcp://localhost/OperationsVia")
)
@@ -367,7 +373,7 @@
.ActAs(new DefaultClientModel()
{
Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("urn:castle:operations")
.Via("net.tcp://localhost/OperationsVia")
})
@@ -387,7 +393,7 @@
.ActAs(new DefaultClientModel()
{
Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations/Ex")
.AddExtensions(typeof(NetDataContractFormatBehavior))
})
@@ -409,12 +415,12 @@
Component.For<IOperationsEx>()
.Named("operations")
.ActAs(new DefaultClientModel()
- {
- Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding {PortSharingEnabled = true})
-
.At("net.tcp://localhost/Operations/Ex")
-
.AddExtensions("specialBehavior")
- })
+ {
+ Endpoint =
WcfEndpoint
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
+
.At("net.tcp://localhost/Operations/Ex")
+
.AddExtensions("specialBehavior")
+ })
);
IOperationsEx client =
windsorContainer.Resolve<IOperationsEx>("operations");
client.Backup(new Dictionary<string, object>());
@@ -511,9 +517,9 @@
.ActAs(new DefaultClientModel()
{
Endpoint = WcfEndpoint
- .BoundTo(new
NetTcpBinding{PortSharingEnabled = true })
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations/Ex")
-
+
})
);
@@ -558,7 +564,7 @@
public void CanInhibitRecoveryFromAnUnhandledException()
{
using (var localContainer = new WindsorContainer()
- .AddFacility<WcfFacility>(f =>
+ .AddFacility<WcfFacility>(f =>
{
f.CloseTimeout = TimeSpan.Zero;
f.Clients.DefaultChannelPolicy = null;
@@ -623,10 +629,10 @@
IOperationsEx client = null;
using (createLocalContainer())
- {
+ {
client =
windsorContainer.Resolve<IOperationsEx>("operations");
client.Backup(new Dictionary<string, object>());
- }
+ }
using (createLocalContainer())
{
@@ -772,11 +778,11 @@
IOperations client =
windsorContainer.Resolve<IOperations>("operations");
using (new
OperationContextScope(WcfContextChannel.For(client)))
- {
+ {
MessageHeader header =
MessageHeader.CreateHeader("MyHeader", "", "MyValue", false);
OperationContext.Current.OutgoingMessageHeaders.Add(header);
Assert.AreEqual(42,
client.GetValueFromConstructor());
- }
+ }
}
[Test]
@@ -896,7 +902,7 @@
int i = 0;
foreach (LoggingEvent log in memoryAppender.GetEvents())
- {
+ {
Assert.AreEqual(typeof(IOperations).FullName,
log.LoggerName);
Assert.IsTrue(log.Properties.Contains("NDC"));
@@ -1067,7 +1073,7 @@
.BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations")
.AddExtensions(start,
new ReplaceOperationsResult("100").ExecuteAt(1),
-
new ReplaceOperationsResult("200").ExecuteAt(2),
+
new ReplaceOperationsResult("200").ExecuteAt(2),
new AddOperationsHeader("MyHeader", "Hello"),
end)
})
@@ -1192,6 +1198,26 @@
Assert.AreEqual(42, client.EndWcfCall<int>(result));
}
+ public void
CanCallChannelOperationsWithRefArgumentsAsynchronously()
+ {
+ windsorContainer.Register(
+ Component.For<IOperations>()
+ .Named("operations")
+ .ActAs(new DefaultClientModel()
+ {
+ Endpoint = WcfEndpoint
+ .BoundTo(new
NetTcpBinding { PortSharingEnabled = true })
+
.At("net.tcp://localhost/Operations")
+ })
+ );
+
+ IOperations client =
windsorContainer.Resolve<IOperations>("operations");
+ int refValue = 0;
+ var call = client.BeginWcfCall(p =>
p.GetValueFromConstructorAsRef(ref refValue));
+ Assert.AreEqual(42, call.End(out refValue));
+ Assert.AreEqual(42, refValue);
+ }
+
[Test]
public void
CanCallChannelOperationsWithOutAndRefArgumentsAsynchronously()
{
@@ -1214,7 +1240,6 @@
Assert.AreEqual(42, outValue);
}
-
[Test]
public void
CanCallChannelOperationsAsynchronouslyUsingServiceEndpoint()
{
@@ -1226,7 +1251,7 @@
Endpoint = WcfEndpoint
.FromEndpoint(new
ServiceEndpoint(
ContractDescription.GetContract(typeof(IOperations)),
- new
NetTcpBinding { PortSharingEnabled = true },
+ new
NetTcpBinding { PortSharingEnabled = true },
new
EndpointAddress("net.tcp://localhost/Operations")
))
})
@@ -1400,20 +1425,20 @@
}
}
- protected void RegisterLoggingFacility(IWindsorContainer container)
- {
- MutableConfiguration facNode = new MutableConfiguration("facility"
);
- facNode.Attributes["id"] = "logging";
- facNode.Attributes["loggingApi"] = "ExtendedLog4net";
+ protected void RegisterLoggingFacility(IWindsorContainer
container)
+ {
+ MutableConfiguration facNode = new
MutableConfiguration("facility");
+ facNode.Attributes["id"] = "logging";
+ facNode.Attributes["loggingApi"] = "ExtendedLog4net";
facNode.Attributes["configFile"] = "";
-
container.Kernel.ConfigurationStore.AddFacilityConfiguration("logging",
facNode);
- container.AddFacility("logging", new LoggingFacility());
+
container.Kernel.ConfigurationStore.AddFacilityConfiguration("logging",
facNode);
+ container.AddFacility("logging", new LoggingFacility());
memoryAppender = new MemoryAppender();
BasicConfigurator.Configure(memoryAppender);
- }
+ }
- private static string xmlConfiguration = @"<?xml version='1.0'
encoding='utf-8' ?>
+ private static string xmlConfiguration = @"<?xml version='1.0'
encoding='utf-8' ?>
<configuration>
<facilities>
Directory:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/
=================================================================================
File [removed]: IWcfLifestyle.cs
Delta lines: +2 -15
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/PerChannelLifestyleExtension.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/PerChannelLifestyleExtension.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -9,7 +9,7 @@
public class PerChannelLifestyleExtension : IExtension<IContextChannel>
{
private IContextChannel channel;
- private readonly IDictionary<IWcfLifestyle, object> components
= new Dictionary<IWcfLifestyle, object>(new WCFLifestyleComparer());
+ private readonly IDictionary<PerWcfSessionLifestyle, object>
components = new Dictionary<PerWcfSessionLifestyle, object>();
private bool used;
/// <inheritDoc />
@@ -57,7 +57,7 @@
channel = null;
}
- public object this[IWcfLifestyle manager]
+ public object this[PerWcfSessionLifestyle manager]
{
get
{
@@ -70,18 +70,5 @@
components[manager] = value;
}
}
-
- private class WCFLifestyleComparer :
IEqualityComparer<IWcfLifestyle>
- {
- public bool Equals(IWcfLifestyle x, IWcfLifestyle y)
- {
- return x.ComponentId.Equals(y.ComponentId);
- }
-
- public int GetHashCode(IWcfLifestyle obj)
- {
- return obj.ComponentId.GetHashCode();
- }
- }
}
}
File [modified]: PerChannelLifestyleExtension.cs
Delta lines: +4 -12
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/PerWcfSessionLifestyle.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/PerWcfSessionLifestyle.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -10,10 +10,8 @@
/// with this lifestyle is requested multiple times during WCF session,
the same instance will be provided.
/// If no WCF session is available falls back to the default behavior
of transient.
/// </summary>
- public class PerWcfSessionLifestyle : AbstractLifestyleManager,
IWcfLifestyle
+ public class PerWcfSessionLifestyle : AbstractLifestyleManager
{
- private readonly Guid id = Guid.NewGuid();
-
private readonly IOperationContextProvider
operationContextProvider;
public PerWcfSessionLifestyle()
@@ -39,12 +37,11 @@
public override object Resolve(CreationContext context)
{
var operation = operationContextProvider.Current;
- if (operation == null)
+ if (operation == null ||
string.IsNullOrEmpty(operation.SessionId))
+ {
return base.Resolve(context);
+ }
- if (string.IsNullOrEmpty(operation.SessionId))
- return base.Resolve(context);
-
var channel = operation.Channel;
// TODO: does this need locking?
@@ -65,10 +62,5 @@
return component;
}
-
- public Guid ComponentId
- {
- get { return id; }
- }
}
}
File [modified]: PerWcfSessionLifestyle.cs
Delta lines: +14 -0
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/IOperations.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration.Tests/Components/IOperations.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -25,6 +25,9 @@
int GetValueFromConstructor();
[OperationContract]
+ int GetValueFromConstructorAsRef(ref int refValue);
+
+ [OperationContract]
int GetValueFromConstructorAsRefAndOut(ref int refValue, out
int outValue);
[OperationContract]
@@ -38,6 +41,10 @@
IAsyncResult BeginGetValueFromConstructor(AsyncCallback
callback, object asyncState);
int EndGetValueFromConstructor(IAsyncResult result);
+ [OperationContract(AsyncPattern = true)]
+ IAsyncResult BeginGetValueFromConstructorAsRef(ref int refValue,
AsyncCallback callback, object asyncState);
+ int EndGetValueFromConstructorAsRef(ref int refValue, IAsyncResult
result);
+
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginGetValueFromConstructorAsRefAndOut(ref int
refValue, AsyncCallback callback, object asyncState);
int EndGetValueFromConstructorAsRefAndOut(ref int refValue, out
int outValue, IAsyncResult result);
@@ -64,6 +71,9 @@
int GetValueFromConstructor();
[OperationContract]
+ int GetValueFromConstructorAsRef(ref int refValue);
+
+ [OperationContract]
int GetValueFromConstructorAsRefAndOut(ref int refValue, out
int outValue);
[OperationContract]
@@ -74,6 +84,10 @@
int EndGetValueFromConstructor(IAsyncResult result);
[OperationContract(AsyncPattern = true)]
+ IAsyncResult BeginGetValueFromConstructorAsRef(ref int
refValue, AsyncCallback callback, object asyncState);
+ int EndGetValueFromConstructorAsRef(ref int refValue,
IAsyncResult result);
+
+ [OperationContract(AsyncPattern = true)]
IAsyncResult BeginGetValueFromConstructorAsRefAndOut(ref int
refValue, AsyncCallback callback, object asyncState);
int EndGetValueFromConstructorAsRefAndOut(ref int refValue, out
int outValue, IAsyncResult result);
Directory:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Proxy/
===================================================================================
File [modified]: MethodCallMessage.cs
Delta lines: +0 -19
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/IWcfLifestyle.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Lifestyles/IWcfLifestyle.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -1,19 +0,0 @@
-namespace Castle.Facilities.WcfIntegration.Lifestyles
-{
- using System;
-
- using Castle.MicroKernel;
-
- /// <summary>
- /// Contract for managing object lifestyles in the context of WCF
runtime.
- /// </summary>
- public interface IWcfLifestyle:ILifestyleManager
- {
- /// <summary>
- /// Id of the component associated with the lifestyle manager
instance.
- /// This Id does not have to have anything to do with the Id of
the component assigned by the container.
- /// It is used for internal tracking purposes os the facility.
- /// </summary>
- Guid ComponentId { get; }
- }
-}
Directory:
/Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/TypeSystem/
==============================================================================================
File [modified]: AsyncMethod.cs
Delta lines: +1 -1
===================================================================
---
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/WcfRemotingAsyncInterceptor.cs
2009-12-30 10:16:29 UTC (rev 6545)
+++
Facilities/Wcf/trunk/src/Castle.Facilities.WcfIntegration/Client/Async/WcfRemotingAsyncInterceptor.cs
2009-12-30 15:21:31 UTC (rev 6546)
@@ -100,7 +100,7 @@
throw returnMessage.Exception;
}
- outs = returnMessage.OutArgs;
+ outs = message.OutArgs;
return returnMessage;
}
--
You received this message because you are subscribed to the Google Groups
"Castle Project Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-commits?hl=en.