首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >例外: Foundation.You_Should_Not_Call_base_In_This_Method

例外: Foundation.You_Should_Not_Call_base_In_This_Method
EN

Stack Overflow用户
提问于 2016-10-19 20:30:43
回答 1查看 2.2K关注 0票数 1

我正在尝试实现IDtech的Unimag读卡器。我已经获得了用于c#本机代码的UniMag绑定库。为了创建unimag对象,我在给定的代码下面编写。

代码语言:javascript
复制
_uniMagReader = new uniMag ();
//_uniMagReader.ReaderType = BrushfireUniMagBinding.UmReader.Shuttle;
_uniMagReader.SetAutoAdjustVolume(true);
_uniMagReader.SetSwipeTimeoutDuration (0);
_uniMagReader.SetAutoAdjustVolume (true);
_uniMagReader.StartUniMag (true);

在第三行,_uniMagReader.SetAutoAdjustVolume(true),我得到了这样的惊喜:

Foundation.You_Should_Not_Call_base_In_This_Method:类型的'Foundation.You_Should_Not_Call_base_In_This_Method'.例外

我不知道为什么我会得到这个例外。我寻找同样的例外,但我不知道答案到底是什么意思。

我的Unimag转换文件看起来如下:

代码语言:javascript
复制
using Foundation;
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace BrushfireUniMagBinding
{
    [Model, Register ("uniMag", false)]
    public class uniMag : NSObject
    {
        //
        // Properties
        //
        [CompilerGenerated]
        public virtual UmReader ReaderType {
            [Export ("readerType")]
            get;
            [Export ("setReaderType:")]
            set;
        }

        //
        // Constructors
        //
        [Export ("init"), EditorBrowsable (EditorBrowsableState.Advanced), CompilerGenerated]
        public uniMag ();

        [EditorBrowsable (EditorBrowsableState.Advanced), CompilerGenerated]
        protected uniMag (NSObjectFlag t);

        //
        // Static Methods
        //
        [Export ("enableLogging:"), CompilerGenerated]
        public static void EnableLogging (bool enable);

        [Export ("SDK_version"), CompilerGenerated]
        public static string SDK_version ();

        //
        // Methods
        //
        [Export ("autoDetect:"), CompilerGenerated]
        public virtual void AutoDetect (bool autoDetect);

        [Export ("cancelSwipe"), CompilerGenerated]
        public virtual void CancelSwipe ();

        [Export ("cancelTask"), CompilerGenerated]
        public virtual void CancelTask ();

        [Export ("closeConnection"), CompilerGenerated]
        public virtual void CloseConnection ();

        [Export ("getAuthentication"), CompilerGenerated]
        public virtual UmRet GetAuthentication ();

        [Export ("getConnectionStatus"), CompilerGenerated]
        public virtual bool GetConnectionStatus ();

        [Export ("getFlagByte"), CompilerGenerated]
        public virtual NSData GetFlagByte ();

        [Export ("getRunningTask"), CompilerGenerated]
        public virtual UmTask GetRunningTask ();

        [Export ("getVolumeLevel"), CompilerGenerated]
        public virtual float GetVolumeLevel ();

        [Export ("getWave"), CompilerGenerated]
        public virtual NSData GetWave ();

        [Export ("isReaderAttached"), CompilerGenerated]
        public virtual bool IsReaderAttached ();

        [Export ("proceedPoweringUp:"), CompilerGenerated]
        public virtual UmRet ProceedPoweringUp (bool proceedPowerUp);

        [Export ("promptForConnection:"), CompilerGenerated]
        public virtual void PromptForConnection (bool prompt);

        [Export ("requestSwipe"), CompilerGenerated]
        public virtual UmRet RequestSwipe ();

        [Export ("sendCommandClearBuffer"), CompilerGenerated]
        public virtual UmRet SendCommandClearBuffer ();

        [Export ("sendCommandCustom:"), CompilerGenerated]
        public virtual UmRet SendCommandCustom (NSData cmd);

        [Export ("sendCommandDefaultGeneralSettings"), CompilerGenerated]
        public virtual UmRet SendCommandDefaultGeneralSettings ();

        [Export ("sendCommandDisableErrNotification"), CompilerGenerated]
        public virtual UmRet SendCommandDisableErrNotification ();

        [Export ("sendCommandDisableExpDate"), CompilerGenerated]
        public virtual UmRet SendCommandDisableExpDate ();

        [Export ("sendCommandDisableForceEncryption"), CompilerGenerated]
        public virtual UmRet SendCommandDisableForceEncryption ();

        [Export ("sendCommandEnableAES"), CompilerGenerated]
        public virtual UmRet SendCommandEnableAES ();

        [Export ("sendCommandEnableErrNotification"), CompilerGenerated]
        public virtual UmRet SendCommandEnableErrNotification ();

        [Export ("sendCommandEnableExpDate"), CompilerGenerated]
        public virtual UmRet SendCommandEnableExpDate ();

        [Export ("sendCommandEnableForceEncryption"), CompilerGenerated]
        public virtual UmRet SendCommandEnableForceEncryption ();

        [Export ("sendCommandEnableTDES"), CompilerGenerated]
        public virtual UmRet SendCommandEnableTDES ();

        [Export ("sendCommandGetNextKSN"), CompilerGenerated]
        public virtual UmRet SendCommandGetNextKSN ();

        [Export ("sendCommandGetSerialNumber"), CompilerGenerated]
        public virtual UmRet SendCommandGetSerialNumber ();

        [Export ("sendCommandGetSettings"), CompilerGenerated]
        public virtual UmRet SendCommandGetSettings ();

        [Export ("sendCommandGetVersion"), CompilerGenerated]
        public virtual UmRet SendCommandGetVersion ();

        [Export ("sendCommandResetBaudRate"), CompilerGenerated]
        public virtual UmRet SendCommandResetBaudRate ();

        [Export ("sendCommandSetPrePAN:"), CompilerGenerated]
        public virtual UmRet SendCommandSetPrePAN (int prePAN);

        [Export ("setAutoAdjustVolume:"), CompilerGenerated]
        public virtual void SetAutoAdjustVolume (bool b);

        [Export ("setAutoConnect:"), CompilerGenerated]
        public virtual void SetAutoConnect (bool autoConnect);

        [Export ("setCmdTimeoutDuration:"), CompilerGenerated]
        public virtual bool SetCmdTimeoutDuration (int seconds);

        [Export ("setDeferredActivateAudioSession:"), CompilerGenerated]
        public virtual void SetDeferredActivateAudioSession (bool b);

        [Export ("setFirmwareFile:"), CompilerGenerated]
        public virtual bool SetFirmwareFile (string location);

        [Export ("setSwipeTimeoutDuration:"), CompilerGenerated]
        public virtual bool SetSwipeTimeoutDuration (int seconds);

        [Export ("setWavePath:"), CompilerGenerated]
        public virtual bool SetWavePath (string path);

        [Export ("startUniMag:"), CompilerGenerated]
        public virtual UmRet StartUniMag (bool start);

        [Export ("updateFirmware:"), CompilerGenerated]
        public virtual UmRet UpdateFirmware (string encrytedBytes);

        [Export ("updateFirmware2:stringWithFile:"), CompilerGenerated]
        public virtual UmRet UpdateFirmware2 (string stringWithFile, string path);
    }
}

在这种情况下有人能指导我吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-05-04 09:38:08

因此,异常You_Should_Not_Call_base_In_This_Method意味着SetAutoAdjustVolume(bool)方法在绑定库中的父方法中调用类似于Base.SetAutoAdjustVolume(bool)的内容。

您可能需要重写SetAutoAdjustVolume(bool)方法,以确保它没有调用Base

代码语言:javascript
复制
[Export ("setAutoAdjustVolume:"), CompilerGenerated]
public virtual void SetAutoAdjustVolume (bool b);

实际上,在代码中使用该方法之前,需要重写生成的绑定到此方法的编译器。

您可以创建一个从uniMag派生的新类,并重写SetAutoAdjustVolume方法,以确保不调用base

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40140988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档