Можете ли вы запутать сборки LinqToSql с реактором .net, не ломая их? - PullRequest
4 голосов
/ 07 мая 2009

Я использую .net Reactor, чтобы запутать сборку слоя данных, содержащую классы LinqToSql. При вызове сборки я получаю следующую ошибку ..

Недопустимое свойство хранилища: '_ApplicationId' для члена 'RCSQLData.Application_DB.ApplicationId'

Я использую режим «Библиотека» и включил «Некробит» и «Обфускация».

Можно ли запутать классы LinqToSQL или это снова старый грецкий орех отражения?

Michael

Ответы [ 2 ]

3 голосов
/ 01 апреля 2010

Так как LINQ-toSQL очень интенсивно использует Reflection. Он не может найти исходные свойства, потому что пытается найти их по их оригинальным именам (которые теперь скрыты).

Решение состоит в том, чтобы исключить переименование соответствующих классов / членов. Некоторые, такие как Crypto Obfuscator , сделают все это автоматически для вас, обнаружив использование LINQ-SQL в вашем коде.

1 голос
/ 15 мая 2009

Вы вызываете защищенную сборку в коде, который хочет ее использовать? (т.е. ссылаться на защищенную .dll?)

Я также использую .NET Reactor, но в «режиме приложения» и защищаю .exe дополнительными сборками, и он работает нормально. Однако я выбираю свою основную сборку и указываю дополнительные сателлиты .dll, которые будут использоваться, и они объединяются и защищаются за один раз.

Я не верю, что вы сможете добавить ссылку на защищенную .dll, в этом и заключается идея, так как она должна обдумать это. Я прочитаю больше в режиме библиотеки и вернусь к вам.

...