2012-03-12 2 views
10

Cette question here semble être contraire à ce que j'ai vécu. Je ne peux pas accéder à la console depuis une nouvelle bibliothèque de classes. J'ai using System; au sommet. J'utilise Visual Studio 11 sur Windows 8. Je doute que cela a été perdu dans la mise à jour, ce qui signifie que je fais quelque chose de mal.Console indisponible dans la bibliothèque de classes C#

De plus, une fois que cela fonctionne, la console est-elle disponible dans une bibliothèque de classes portable?

EDIT

ici est juste un fichier de test que j'ai fait

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace AdamLib.util.ConsoleSupport 
{ 
    class SafeRead 
    { 
     private void test() 
     { 
      System.Console.Writeline("test"); //Console is not found in system 
     } 
    } 
} 

Ceci est dans la bibliothèque de classe.

RESOLU

Comme je pensais, c'était ma faute.

Merci à @DarinDimitrov, qui a souligné qu'avec VS 11 et Metro, le support de la console a été supprimé pour une utilisation avec Metro. Pour résoudre ce problème, j'ai dû créer un nouveau projet avec le deuxième type de bibliothèque de classes. Il ya deux énumérés et j'ai utilisé celui avec la description qui comprend le métro. Pour résoudre le problème, j'ai dû utiliser l'autre type sans métro dans la description.

Merci encore à tout ce qui a aidé.

+0

Quel message d'erreur que vous obtenez? –

+0

Mais le projet principal est une ConsoleApplication ou un Windows Form? – Steve

+0

Je reçois 'Le type ou nom d'espace de nom 'Console' n'existe pas dans l'espace de nom 'System' (manque-t-il une référence d'assembly?)' Et il n'y a pas encore de projet principal. Je viens d'écrire ma bibliothèque d'utilitaires. –

Répondre

10

Si vous avez créé une application de style Metro, il n'y a pas de console dans WinRT. Ne cherchez pas comme vous n'en trouverez pas. Ceci est expliqué dans this article:

Le sous-ensemble des types et des membres gérés a été conçu avec un accent sur le développement clair de l'application de style Metro. En conséquence, il omet le suivant:

  • Types et membres qui ne sont pas applicables au développement des applications de style Metro (comme console et types ASP.NET).

  • Obsolètes et types hérités.

  • Types qui chevauchent les types d'exécution Windows.

  • Types et membres qui enveloppent la fonctionnalité du système d'exploitation (tels que System.Diagnostics.EventLog et les compteurs de performance). Membres qui provoquent une confusion (tels que la méthode Close sur les types d'E/S).

Vous pouvez utiliser le cadre debugging API ou l'exploitation forestière.

+0

En plus de cela, à moins que cette classe lib soit supposée être une sorte de composant de vue, vous ne voudriez pas écrire sur une console. Ecrire dans un/le journal – CrazyDart

+0

C'est une collection de certains utilitaires que j'ai écrit pour une utilisation avec la ligne de commande. Donc j'ai besoin d'interagir avec ça. –

+0

@AdamSchiavone, si vous devez interagir avec une console, ne créez pas de bibliothèque de classes WinRT car la notion de console n'existe pas dans le style Windows 8 Metro. –

Questions connexes