public SPServiceApplicationProxy CreateProxy(string name, SPServiceApplication serviceApplication, SPServiceProvisioningContext provisioningContext)
{
if (serviceApplication.GetType() != typeof(NodeServiceApplication))
{
throw new NotSupportedException();
}
if (serviceApplication == null)
{
throw new ArgumentNullException("serviceApplication");
}
// Verify the service proxy exists.
NodeServiceProxy serviceProxy = (NodeServiceProxy)this.Farm.GetObject(name, this.Farm.Id, typeof(NodeServiceProxy));
if (serviceProxy == null)
throw new InvalidOperationException("NodeServiceProxy does not exist in the farm.");
// If the application proxy doesn't exist, create it.
NodeServiceApplicationProxy applicationProxy = serviceProxy.ApplicationProxies.GetValue<NodeServiceApplicationProxy>(name);
if (applicationProxy == null)
{
Uri serviceAppAddress = ((NodeServiceApplication)serviceApplication).Uri;
applicationProxy = new NodeServiceApplicationProxy(name, serviceProxy, serviceAppAddress);
}
return applicationProxy;
}