#c# #postsharp
#c# #postsharp
Вопрос:
Я использую postsharp, и я использую OnMethodBoundaryAspect
, и в соответствии с этим он доступен в версии сообщества. Это практически единственный аспект, который я использую. Однако я использую postsharp.config
файл и не уверен, что это бесплатная функция. Файл конфигурации :
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.postsharp.org/1.0/configuration">
<Multicast xmlns:my="clr-namespace:ExceptionAutoSerializer.Aspects;assembly:ExceptionAutoSerializer">
<my:MethodBoundaryAspect AttributeTargetTypes="My.Custom.Namespace.*" />
</Multicast>
</Project>
Когда я пытаюсь скомпилировать большой проект, я получаю эту ошибку :
Ошибка лицензии. В проекте используются нелицензионные премиум-функции. Не разрешается улучшать типы с общим количеством более 1000 строк кода в проекте с помощью функций, не охватываемых установленными лицензиями, но было улучшено 3949 строк кода. MyCustomProject
Но в нем не указано, какую функцию я использую, поэтому ее сложно отлаживать. Есть ли какой-нибудь способ узнать, что вызывает ошибку?
Комментарии:
1. Я не знаю всей полноты бесплатных функций, но если вы только начали испытывать это, не могли бы вы довольно легко отследить, какое дополнение к вашему коду вызвало это?
2. Я использовал postsharp уже около 4 недель в PoC si, не так просто вернуться назад, но я сделаю все возможное
3. Рад видеть, что вы нашли причину. Чтобы легче находить причины подобных проблем (или многих других проблем с кодом) Я бы рекомендовал вам часто комментировать свой код, а также пытаться создавать свой код. Просто дружеское предложение, если это не то, что вы уже делаете. Небольшие коммиты — хорошая практика 🙂
Ответ №1:
Документацию о том, что бесплатно, а что нет, довольно сложно найти, imo. Но я нашел это, и вот как я это решил:
Декораторы методов и перехватчики :
Оба аспекта methodboundaryaspect и MethodInterceptionAspect можно использовать бесплатно, но семантическое консультирование асинхронных методов является премиум-функцией.
Чтобы отключить семантическое консультирование, вы должны установить для свойства semanticallyadvisedmethod KINDS значение None в конструкторе aspect .
Комментарии:
1. Чтобы понять последствия, прочитайте doc.postsharp.net/semantic-advising .