Я очень новичок в программировании Autocad, несколько месяцев назад, но мне удалось написать приложение с примерно 10 командами Autocad. Большинство этих команд показывают окно, и все остальное делается из этого окна. Я пытаюсь сделать свое приложение MVVM..ий. Поскольку у меня есть почти 1 к 1 соответствие между моделями ViewModels Views и командами, которые, по моему мнению, было бы целесообразно поместить команду в одну из трех частей MVVM. Сначала я решил поместить команду в ViewModel, тогда я понял, что моя команда только показывает окно, и ViewModel не должен обрабатывать окна, поэтому я перевел команду в Code's Code. Как я понял, вполне нормально иметь код в коде, если он строго связан с просмотром. Затем я прочитал об атрибуте CommandClass на каком-то учебнике, предоставленный компанией Autodesk, и я нашел это:Где я должен поместить команды в проект Autocad VB.NET?
CommandClassAttribute Этих пользовательский атрибут класса используется для обозначения типа, как класс команд приложения. Приложение может назначать один и только один тип в качестве своего командного класса. AutoCAD ищет методы команды приложения для типа, который несет этот атрибут.
Это говорит о том, что у меня должен быть один класс для включения всех моих команд. Затем я прочитал это, что подтверждает следующее:
Для метода команды экземпляра тип включения метода создается отдельно для каждого открытого документа.
Так что мой первый подход к размещению команд в представлениях или в режимах просмотра был совершенно неправильным, потому что у меня бы экземпляры viewmodel не делали ничего, кроме запуска команды. Затем я прочитал это в документации ObjectARX:
Если приложение использует атрибут CommandClass, оно должно объявить экземпляр этого атрибута для каждого типа, содержащего метод обработчика команд AutoCAD.
Это прямо противоречит приведенному выше учебному пособию, а также предлагает, чтобы в одобренной практике было более одного класса для обработки команд.
Все учебные пособия по Autocad .NET представляют собой проекты с одним классом и одной командой, поэтому вам не нужно много выбирать, где их разместить.
Может ли какой-нибудь опытный разработчик Autocad .NET обеспечить наилучшую практику или, по крайней мере, одобрить или не ошибиться в управлении командами Autocad в довольно большом проекте?
[Постарайтесь увидеть ссылку ниже, это может помочь вам] [1] [1]: http://stackoverflow.com/questions/1338955/autocad-in-vb-net?rq = 1 –
Спасибо за ваш ответ, но у меня нет проблемы с запуском. Я уже посетил большинство этих ссылок несколько месяцев назад, когда я начал работать с Autocad .NET. К сожалению, большинство из них покрывает основную проблему hello world. – Andrei