Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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#_Asp.net Mvc_Wcf_Entity Framework - Fatal编程技术网

C# WCF和通用接口出现问题

C# WCF和通用接口出现问题,c#,asp.net-mvc,wcf,entity-framework,C#,Asp.net Mvc,Wcf,Entity Framework,我开始学习和使用WCF,这对我来说是一项新技术,实际上是我第一次使用服务。 我有 [服务合同] 接口IContract { [经营合同] T做(T一些); [经营合同] 无效工作(); } 我有一个班级服务 class MyClass : ICrud<AnotherClass> { AnotherClass Do(AnotherClass some) {} void Work() {} } class MyClass:ICrud { 另一个班做(另一个班做) {} 无效工作()

我开始学习和使用WCF,这对我来说是一项新技术,实际上是我第一次使用服务。 我有

[服务合同]
接口IContract
{
[经营合同]
T做(T一些);
[经营合同]
无效工作();
}
我有一个班级服务

class MyClass : ICrud<AnotherClass>
{
AnotherClass Do(AnotherClass some)
{}
void Work()
{}
}
class MyClass:ICrud
{
另一个班做(另一个班做)
{}
无效工作()
{}
}
我使用实体框架,将模型(Poco类)和文件夹替换为WCF库的CRUD。对于每个表的每个CRUD,我都编写了服务类,如上图所示。 我已经用属性标记了DataContract和MemberContract的所有模型

 <service name="Action.Cruds.MyClass">
        <host>
          <baseAddresses>
            <add baseAddress = "http://localhost:8732/Design_Time_Addresses/Action/Cruds/MyClass/" />
          </baseAddresses>
        </host>
        <endpoint address ="" binding="wsHttpBinding" contract="Action.Cruds.IContract[Class]">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>

我为每个crud类添加了每个标记,它们都是相同的,只需更改一个端点以设置另一个IContract泛型。 我想问一下,我的方法是否正确?泛型会给我带来哪些麻烦? 如何正确定义所有这些代码?如何正确更改App.config
对于我的服务?

WCF是一个消息传递系统(发送序列化的XML消息),因此,从客户端到服务器(以及从服务器到客户端)的所有数据必须采用可以用XML模式表示的形式。这并不真正支持接口和泛型-你需要使用具体的类型来代替。这是关于泛型的,谢谢你的评论。你能提供一些例子或参考我如何实现它吗?奇怪,但我在谷歌里找不到任何决定它的方法。我只是看不懂你的句子,我已经替换了模型(Poco类)和包含CRUD的文件夹。是否希望您的域类每个都有一个端点?此外,您可以使用@name回复注释。不清楚您要求的示例是什么。
 <service name="Action.Cruds.MyClass">
        <host>
          <baseAddresses>
            <add baseAddress = "http://localhost:8732/Design_Time_Addresses/Action/Cruds/MyClass/" />
          </baseAddresses>
        </host>
        <endpoint address ="" binding="wsHttpBinding" contract="Action.Cruds.IContract[Class]">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>