Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:&x27;界面';不包含';XMethod';_C#_.net_Ninject - Fatal编程技术网

C# Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:&x27;界面';不包含';XMethod';

C# Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:&x27;界面';不包含';XMethod';,c#,.net,ninject,C#,.net,Ninject,我有以下接口及其继承: public interface IBase1<T> where T : struct {} public interface IBase2<T> where T : struct { T XMethod(); } public interface IBaseInt : IBase1<int>, IBase2<int> {} public interface IBaseDecimal : IBase1<de

我有以下接口及其继承:

public interface IBase1<T>  where T : struct
{}

public interface IBase2<T>  where T : struct
{
 T XMethod();
}

public interface IBaseInt : IBase1<int>, IBase2<int>
{}

public interface IBaseDecimal : IBase1<decimal>, IBase2<decimal>
{}

public interface IBaseInner<T>
{
void InnerMethod();
}
不会引发异常

你能解释一下为什么会这样吗

public class BaseInt : IBaseInt, IBaseInner<int>
{
// some implementation code here

public int XMethod()
{
// implementation of int Xmethod
}

public void InnerMethod()
{
// implementation of InnerMethod
}
}
public class BaseDecimal : IBaseDecimal, IBaseInner<decimal>
{
    private readonly IBaseInt baseInt; //Injected by ninject
    public BaseDecimal(IBaseInt pBaseInt)
    {
        this.baseInt = pBaseInt;
    }

        public decimal XMethod()
        {
        // implementation of decimal XMethod
        }
        public void InnerMethod()
        {
            baseInt.XMethod(); // throws an exception, because don't recognize this method
        }
    }
(baseInt as IBase2).XMethod();