[英]Inconsistent Accessibility: Parameter type is less accessible than method with WCF MEX
我正在分配作业,但出现此错误:
错误1不一致的可访问性:参数类型'MexWcfService.MyComplex'的访问权限比方法'MexWcfService.Calculator.complex_sum(MexWcfService.MyComplex,MexWcfService.MyComplex)'E:\\ North Central College \\ CSC615 \\ lab8 \\ MexWcfService \\ MexWcfService \\ Program。 cs 75 26 MexWcfService
以下是我的代码。 我的问题发生在..public MyComplex complex_sum(MyComplex a,MyComplex b)的接口实现类内部...
有人可以帮我吗? 我对C#相当陌生,更不用说WCF和元数据交换端点了。 任何指针都将非常感激。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.ServiceModel.Description;
namespace MexWcfService
{
[DataContract]
class MyComplex
{
int real;
int im;
public MyComplex(int real, int im)
{
Real = real;
Im = im;
}
[DataMember]
public int Real
{
get { return real; }
set { real = value; }
}
[DataMember]
public int Im
{
get { return im; }
set { im = value; }
}
}
[ServiceContract]
interface ICalculator
{
[OperationContract]
int mult(int a, int b);
[OperationContract]
List<int> fib(int n);
[OperationContract]
MyComplex complex_sum(MyComplex a, MyComplex b);
}
public class Calculator : ICalculator
{
public int mult(int a, int b)
{
int total = (a * b);
return total;
}
public List<int> fib(int n)
{
List<int> list = new List<int>();
for (int i = 0; i < n; i++)
{
int a = 0;
int b = 1;
for (int q = 0; q < i; q++)
{
int temp = a;
a = b;
b = temp + b;
}
list.Add(a);
}
return list;
}
public MyComplex complex_sum(MyComplex a, MyComplex b)
{
int real = (a.Real + b.Real);
int im = (a.Im + b.Im);
MyComplex complex = new MyComplex(real, im);
return complex;
}
}
class Program
{
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(Calculator), new Uri("http://localhost:50000/Math"));
host.AddServiceEndpoint(typeof(Calculator), new BasicHttpBinding(), "mult");
ServiceMetadataBehavior bhv = new ServiceMetadataBehavior();
bhv.HttpGetEnabled = true;
host.Description.Behaviors.Add(bhv);
host.Open();
Console.ReadLine();
}
}
}
您需要将“ MyComplex”类声明为公共类,因为您已经在Calculator类中的公共方法中使用了该类型。
将值作为参数传递时,我遇到了类似的问题。 我使参数类型的访问说明符与方法访问说明符相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.