А зачем нужно переделывать C# код на Х++ для 3.0? По-моему, проще будет сделать обертку на C# и дергать ее из 3.0 через COM. Я лично делал примерно так:
- в VS создавал проект по шаблону Class Library под .NET Framework 4.0
- в C# создавал public-класс с атрибутом ClassInterface(ClassInterfaceType.AutoDispatch) - атрибут объявлен в пространстве имен System.Runtime.InteropServices;
- собирал сборку и клал ее рядом с исполняемым файлом ядра Аксапты 3.0 (в моем случае это был АОС)
- регистрировал сборку в качестве COM-компоненты с помощью regasm (обычно располагается в каталоге %SystemRoot%\Microsoft.NET\Framework\v4.0.30319):
Код:
RegAsm название_сборки.dll
RegAsm название_сборки.dll /tlb
второе вроде как опционально, но мало ли
И все, дальше можно в Х++ создавать через COM экземпляр класса и дергать его методы; разумеется, при этом налагаются определенные ограничения на типы параметров и возвращаемых значений методов. Если для сборки нужны какие-то настройки, то их надо будет прописать в config-файл (например, ax32serv.exe.config) и положить рядом с файлом ядра Аксапты.