public CTInAppFCManager(CleverTapInstanceConfig config)
     : base(NSObjectFlag.Empty)
 {
     if (config == null)
     {
         throw new ArgumentNullException("config");
     }
     IsDirectBinding = GetType().Assembly == global::ApiDefinition.Messaging.this_assembly;
     if (IsDirectBinding)
     {
         InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("initWithConfig:"), config.Handle), "initWithConfig:");
     }
     else
     {
         InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr(this.SuperHandle, Selector.GetHandle("initWithConfig:"), config.Handle), "initWithConfig:");
     }
 }
 public CTLocalDataStore(CleverTapInstanceConfig config, NSDictionary profileValues)
     : base(NSObjectFlag.Empty)
 {
     if (config == null)
     {
         throw new ArgumentNullException("config");
     }
     if (profileValues == null)
     {
         throw new ArgumentNullException("profileValues");
     }
     IsDirectBinding = GetType().Assembly == global::ApiDefinition.Messaging.this_assembly;
     if (IsDirectBinding)
     {
         InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(this.Handle, Selector.GetHandle("initWithConfig:andProfileValues:"), config.Handle, profileValues.Handle), "initWithConfig:andProfileValues:");
     }
     else
     {
         InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(this.SuperHandle, Selector.GetHandle("initWithConfig:andProfileValues:"), config.Handle, profileValues.Handle), "initWithConfig:andProfileValues:");
     }
 }
        public CTDeviceInfo(CleverTapInstanceConfig config, string cleverTapID)
            : base(NSObjectFlag.Empty)
        {
            var config__handle__ = config.GetNonNullHandle(nameof(config));

            if (cleverTapID == null)
            {
                ObjCRuntime.ThrowHelper.ThrowArgumentNullException(nameof(cleverTapID));
            }
            var nscleverTapID = NSString.CreateNative(cleverTapID);

            IsDirectBinding = GetType().Assembly == global::ApiDefinition.Messaging.this_assembly;
            if (IsDirectBinding)
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(this.Handle, Selector.GetHandle("initWithConfig:andCleverTapID:"), config__handle__, nscleverTapID), "initWithConfig:andCleverTapID:");
            }
            else
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(this.SuperHandle, Selector.GetHandle("initWithConfig:andCleverTapID:"), config__handle__, nscleverTapID), "initWithConfig:andCleverTapID:");
            }
            NSString.ReleaseNative(nscleverTapID);
        }