public async static System.Threading.Tasks.Task<CityPowerInterfaces.IPowerLineObserver> CreateObjectReference(CityPowerInterfaces.IPowerLineObserver obj)
 {
     if (methodInvoker == null) methodInvoker = new PowerLineObserverMethodInvoker();
     return PowerLineObserverFactory.Cast(await global::Orleans.Runtime.GrainReference.CreateObjectReference(obj, methodInvoker));
 }
 public static System.Threading.Tasks.Task DeleteObjectReference(CityPowerInterfaces.IPowerLineObserver reference)
 {
     return global::Orleans.Runtime.GrainReference.DeleteObjectReference(reference);
 }
            System.Threading.Tasks.Task CityPowerInterfaces.IPowerLine.SubscribeForPowerNotifications(CityPowerInterfaces.IPowerLineObserver @subscriber)
            {
global::Orleans.CodeGeneration.GrainFactoryBase.CheckGrainObserverParamInternal(@subscriber);

                return base.InvokeMethodAsync<object>(1042716812, new object[] {@subscriber is global::Orleans.Grain ? CityPowerInterfaces.PowerLineObserverFactory.Cast(@subscriber.AsReference()) : @subscriber} );
            }