Генерация свойства.NET “должна объявить тело, потому что она не отмечена краткий обзор или экстерн” ошибка компиляции

Отличный проект by @sindresorhus, называемый sort-keys, который работает потрясающе.

Здесь вы можете проверить его исходный код:

https://github.com / sindresorhus / sort-keys

Или вы можете использовать его с npm:

$ npm install --save sort-keys

Вот примеры кода из его readme

const sortKeys = require('sort-keys');

sortKeys({c: 0, a: 0, b: 0});
//=> {a: 0, b: 0, c: 0}

sortKeys({b: {b: 0, a: 0}, a: 0}, {deep: true});
//=> {a: 0, b: {a: 0, b: 0}}

sortKeys({c: 0, a: 0, b: 0}, {
    compare: (a, b) => -a.localeCompare(b)
});
//=> {c: 0, b: 0, a: 0}

12
задан Matthew Cole 18 September 2008 в 19:12
поделиться

9 ответов

добавить в web.config

<system.codedom>
    <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
            <providerOption name="CompilerVersion" value="v3.5" />
            <providerOption name="WarnAsError" value="false" />
        </compiler>
    </compilers>
</system.codedom>
16
ответ дан 2 December 2019 в 19:00
поделиться

Синтаксис допустим. И можно установить различные модификаторы доступа. Вы не находитесь в Интерфейсе, Вы? И класс, в котором они находятся, не абстрактен, это?

Кроме того, не имеет значения, для чего v. из платформы Вы нацелены, потому что это - функция компилятора. VS2008 реализует свойство w/запоминающие устройства для Вас.

3
ответ дан 2 December 2019 в 19:00
поделиться

Ваш код действителен - он должен хорошо работать. Войдите к страницам свойств Вашего проекта и удостоверьтесь, что "Целевой Платформой" является.NET 3.0 или 3.5.

4
ответ дан 2 December 2019 в 19:00
поделиться

Вы корректны; тот стиль позволяется.

Я изучил бы стандартные блоки, на которые ссылаются. Я не уверен, который необходимо было бы заставить это компилировать, но я фигурирую несколько, что Вы указываете на версию.Net v2.0 csc.exe.

1
ответ дан 2 December 2019 в 19:00
поделиться

Та ошибка не должна прибывать из кода, который Вы отправили. Согласно MSDN, Вы сделали это правильно: http://msdn.microsoft.com/en-us/library/bb384054.aspx

Следовательно я рекомендовал бы перепроверить сообщение об ошибке, и где в компиляторе говорится, что ошибка прибывает из. Текст сообщения, которое Вы добавили, не включал ссылку на свойства, и существует подобное сообщение для функций... Что-либо, что пропускает реализацию а не в интерфейсе или отметило краткий обзор или экстерна, может генерировать эту ошибку.

Автосвойство является функцией языка/компилятора C# 3.0. При использовании VS 2008 он должен работать даже при предназначении для.NET 2.0. Я ПРОСТО протестировал его для проверки.

1
ответ дан 2 December 2019 в 19:00
поделиться

Где Вы определяете это Свойства? Непосредственно в as*x файле или в codeBehind? (Я не думаю, что это может быть причиной, но если целью сборки является.NET 3.5, я не вижу ничто больше),

0
ответ дан 2 December 2019 в 19:00
поделиться

Это, пока Вы помещаете краткий обзор впереди или реализуете методы.

public abstract string LogPath { get; private set; }
public abstract string ErrorMsg { get; private set; }

См. http://forums.asp.net/t/1031651.aspx

-7
ответ дан 2 December 2019 в 19:00
поделиться

Это также происходит с необработанным проектом веб-сайта, где не было сгенерировано web.config.

Хотя в файле решения указано 3.5, .Net требовался файл web.config, чтобы указать его также для признать. Я запустил отладку, позволив ему создать webconfig, и все заработало.

Так что это похоже на предоставленный ответ, но просто убедитесь, что он у вас есть.

0
ответ дан 2 December 2019 в 19:00
поделиться

Это ошибка также может произойти, если вы используете CodeFile = "MyControl.ascx.cs" в своем MyControl.ascx вместо CodeBehind = "MyControl.ascx.cs".

В случае CodeFile файл 2. 0 пытается перекомпилировать страницу, даже если у вас есть веб-проект вместо веб-сайта, и, конечно же, не работает.

Изменение имени атрибута на CodeBehind устранило проблему в моем случае.

1
ответ дан 2 December 2019 в 19:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: