none
Auto-implemented properties

    Dotaz

  • Proč mi kompilátor nedovolí použít automatické vlastnosti? Jedná se ASP.NET webový projekt a třída s těmito vlastnostmi je umístěna v adresáři App_Code.

    public class PollOptionDetails
    {
      public int ID { get; set; }
      public DateTime AddedDate { get; set; }
      public string AddedBy { get; set; }
      public int PollID { get; set; }
      public string OptionText { get; set; }
      public int Votes { get; set; }
      public double Percentage { get; set; }

      public PollOptionDetails(int id, DateTime addedDate, string addedBy, int pollID,
         string optionText, int votes, double percentage)
      {
        this.ID = id;
        this.AddedDate = addedDate;
        this.AddedBy = addedBy;
        this.PollID = pollID;
        this.OptionText = optionText;
        this.Votes = votes;
        this.Percentage = percentage;
      }
    }

    Při překladu mi vyskočí chyby typu:
    PollOptionDetails.ID.get' must declare a body because it is not marked abstract or extern

    Díky za případnou odpověď.
    neděle 13. září 2009 18:09

Odpovědi

  • Tak problem jsem vyresil. Porovnaval jsem originalni web.config a muj vlastni. Po pridani tohoto kodu:

    <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>

    uz automaticky implementovane properties funguji tak jak maji. Sice moc nechapu, co presne vyse uvedeny kod dela, pokud nekdo zna presnejsi vyznam teto sekce, prosim poucte me.

    • Označen jako odpověď Tomáš Slíž úterý 15. září 2009 15:30
    úterý 15. září 2009 15:29

Všechny reakce

  • Jakou mate nastavenou verzi "Target Framework" ve vlastnostech aplikace? Pro 3.5 to prelozim bez problemu.
    Libor
    úterý 15. září 2009 6:24
  • Mam nastaveny .NET Framework 3.5, projekt jsem zakladal pres File -> New -> Web Site. Cele se to chova nejak zvlastne. Naprikla mi chybela reference na System.Core a u "using System.Linq" hazel kompilator chybu chybejici reference. Mozna tam zkratka chybi reference. Nejsem si moc jisty, jak to funguje u projektu typu WebSite, ale napr. pri zalozeni ASP.NET projektu pres nabidku projektu, se m v solution vytvori slozka references, ve ktere jsou vsechny reference vlozeny.

    Edit:
    Tak po chvilce zkoumani jsem dosel k tomu, ze reference se ukladaji do konfiguracniho souboru web.config. Ten ja na zacatku kompletne smazal a zacal psat svuj vlastni, reference jsem tam zapomnel pridat, ale i po jejich pridani problem s automatickymi properties trva. Smazal jsem snad v konfiguracnim souboru jeste neco, kvuli cemu to nejde? Pro poradek jeste kod pridanych referenci:

    <
    compilation
    debug="true">
      <
    assemblies>
        <
    add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <
    add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <
    add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <
    add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </
    assemblies>
    </
    compilation>
    úterý 15. září 2009 8:11
  • Tak problem jsem vyresil. Porovnaval jsem originalni web.config a muj vlastni. Po pridani tohoto kodu:

    <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>

    uz automaticky implementovane properties funguji tak jak maji. Sice moc nechapu, co presne vyse uvedeny kod dela, pokud nekdo zna presnejsi vyznam teto sekce, prosim poucte me.

    • Označen jako odpověď Tomáš Slíž úterý 15. září 2009 15:30
    úterý 15. září 2009 15:29