簡體   English   中英

可訪問性不一致:與使用WCF MEX的方法相比,參數類型的訪問性較差

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM