Моно говорит, что «System.Net.Dns.GetHostEntry (string)» недоступен из-за уровня защиты - PullRequest
3 голосов
/ 22 сентября 2010

Я сейчас беру класс, где некоторые примеры на C #. Так как мой ноутбук работает под управлением Linux, я использую Mono 2.6.7 в Ubuntu.

Я пытаюсь скомпилировать следующий код:

using System.Net.Sockets;
using System.Net;
using System;

/// <summary>
/// Example program showing simple TCP socket connections in C#.NET.
/// Rather than reading and writing byte arrays, this example show
/// how to use a stream reader in the client.
/// TCPSocketServer is the socket server.
/// <author>Tim Lindquist ASU Polytechnic Department of Engineering</author>
/// <version>September, 2009</version>
/// </summary>
public class TCPSocketServer {

  public static void Main (string [] args) {
    IPAddress ipAddress = Dns.GetHostEntry("localhost").AddressList[0];
    TcpListener tcpl = new TcpListener(ipAddress, 9090);
    tcpl.Start();
    Console.WriteLine("TCPSocketServer waiting for connections on 9090");
    Socket sock = tcpl.AcceptSocket();
    string msg = "Hello Client";
    Byte[] msgBytes = System.Text.Encoding.ASCII.GetBytes(msg);
    sock.Send(msgBytes, msgBytes.Length, SocketFlags.DontRoute);
    Console.WriteLine("Message-Hello Client-sent to client.");
    tcpl.Stop();
    sock.Close();
  }
}

Когда я компилирую код, я получаю:

/home/vivin/Projects/cst420/CSSockets/src/TCPSocketServer.cs(16,31): error CS0122: `System.Net.Dns.GetHostEntry(string)' is inaccessible due to its protection level
/usr/lib/mono/gac/System/1.0.5000.0__b77a5c561934e089/System.dll (Location of the symbol related to previous error)
ompilation failed: 1 error(s), 0 warnings

Я новичок в C #; это первая программа на C #, которую я когда-либо компилировал. Я попытался выполнить поиск в Google, но я не получил много обращений по этой проблеме. Это проблема с моно?

Ответы [ 2 ]

7 голосов
/ 22 сентября 2010

System.Net.Dns.GetHostEntry был представлен в .NET Framework 2.0 .В реализации Mono он также присутствует в версиях до 2.0, но помечен как internal вместо public.Вы, кажется, компилируете против .NET Framework 1.0 .

Из / mcs / class / System / System.Net / Dns.cs :

#if NET_2_0
    public
#else
    internal
#endif
    static IPHostEntry GetHostEntry (string hostNameOrAddress)
    {
        // ...
5 голосов
/ 22 сентября 2010

Вы используете gmcs компилятор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...