public Session(ITransportChannel channel, Session template, bool copyEventHandlers)
:
base(channel)
{
Initialize(channel, template.m_configuration, template.m_endpoint, template.m_instanceCertificate);
m_defaultSubscription = template.m_defaultSubscription;
m_sessionTimeout = template.m_sessionTimeout;
m_maxRequestMessageSize = template.m_maxRequestMessageSize;
m_preferredLocales = template.m_preferredLocales;
m_sessionName = template.m_sessionName;
m_handle = template.m_handle;
m_identity = template.m_identity;
m_keepAliveInterval = template.m_keepAliveInterval;
if (copyEventHandlers)
{
m_KeepAlive = template.m_KeepAlive;
m_Publish = template.m_Publish;
m_PublishError = template.m_PublishError;
m_SubscriptionsChanged = template.m_SubscriptionsChanged;
m_SessionClosing = template.m_SessionClosing;
}
foreach (Subscription subscription in template.Subscriptions)
{
this.AddSubscription(new Subscription(subscription, copyEventHandlers));
}
}