2008-12-16 7 views
4

Je suis en train de compiler un POCO avec ce code.NET - Erreur lors de la compilation des propriétés automatiques

public class MenuItem 
{ 
    public string Name 
    { get; set; } 
    public string Url 
    { get; set; } 
} 

Je erreurs à la compilation sur le récupère et définit avec des messages comme: « MenuItem.Name. get 'doit déclarer un corps car il n'est pas marqué abstrait ou externe. Qu'est-ce qui me manque? Je compile cette classe dans le dossier App_Code d'un site Web de système de fichiers local qui est configuré pour se compiler en tant que .NET 3.5. Je sais que j'ai déjà fait cela, mais je n'arrive pas à comprendre ce que je fais différemment.

Répondre

12

Assurez-vous que votre fichier Web.config contient un <system.codedom> sous-élément sous <configuration> élément comme celui-ci:

<system.codedom> 
    <compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
       type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
    </compilers> 
</system.codedom> 

Le problème provient du fait que ASP.NET exécute l'ancienne version du compilateur C# pour compiler votre application (v2 .0) qui ne supporte pas les propriétés automatiques. Pour utiliser les fonctionnalités .NET 3.5, vous devez spécifier la version du compilateur dans votre Web.config explicitement.

+0

Merci. Quelqu'un avec des droits d'édition pouvez-vous corriger la balise de fermeture manquante. – BuddyJoe

+0

Oops, bien sûr. Je l'ai corrigé! StackOverflow a besoin d'IntelliSense! LOL! –

Questions connexes