Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# wcf回调接口-实现第三方接口_C#_.net_Wcf - Fatal编程技术网

C# wcf回调接口-实现第三方接口

C# wcf回调接口-实现第三方接口,c#,.net,wcf,C#,.net,Wcf,我有一个接口定义,我想与解决方案中的其他程序集共享,因此我将其放在一个单独的项目中 public interface IName { string Name { get; } } 但是,我想在定义WCF回调接口的项目中使用它: public interface ICallback : IName { } 因此,我向IName接口添加了[OperationContract]属性,如下所示: public interface IName { string Name {

我有一个接口定义,我想与解决方案中的其他程序集共享,因此我将其放在一个单独的项目中

public interface IName
{
    string Name { get; }
}
但是,我想在定义WCF回调接口的项目中使用它:

public interface ICallback : IName
{
}
因此,我向IName接口添加了[OperationContract]属性,如下所示:

public interface IName
{
    string Name
    {
        [OperationContract(IsOneWay=false)]
        get;
    }
}
但是当我使用svcutil时,输出类不包含继承的属性。我尝试使用/r标志引用包含IName的程序集,但它仍然忽略该属性

我甚至尝试将[ServiceKnownType]属性添加到回调接口,但仍然没有成功:

[ServiceKnownType(typeof(IName))]
public interface ICallback : IName
{
}

是否可以在WCF回调中实现外部接口?

是的,接口继承适用于WCF

尝试使接口公开,以便在其他程序集中可以访问,在您的情况下,接口是内部的

我不确定WCF是否支持公共接口上的属性。尝试使用一些测试方法,而不是回调接口上的属性。WCF接口的工作方式与C接口不同。例如,WCF不支持重载。试着这样做:

public interface IName
{
    [OperationContract(IsOneWay=false)]
    string GetName();
}

用ServiceContract标记类,请参见我定义的是回调,而不是服务,例如[ServiceContractSessionMode=SessionMode.Required,CallbackContract=typeofICallback]公共接口IServer{}My bad。它们是公开的,但我并没有在最初的帖子中这样写。我要更新帖子。用方法代替属性测试怎么样?