我用c#做开发,之前员工留下的一个dll,有源代码,里面定义了很多底层的函数和接口。现在我需要另外写一些函数,来调用这些接口,而让原来的接口对外部不可见。我目前想到了两种方案:1、在原dll中,加一个class,访问权限为public,其它原来的类和函数全部用private
但原来的代码非常庞杂,里面又有抽象类和接口,我试着修改了几个,报了一大堆“xx.xx的访问权限比xx还低”,小弟才疏学浅,不具备维护能力,而且代码量很庞大,修改起来非常耗时,而且容易出错。2、另外建一个类库,引用这个dll
但编译出来是两个dll,外部调用的时候,如果调用a.dll,还是可以直接操作底层的函数。请问各位高手,有没有其它好的解决方法?或者前两种方法可行,只是我操作方式有误?多谢指教
但原来的代码非常庞杂,里面又有抽象类和接口,我试着修改了几个,报了一大堆“xx.xx的访问权限比xx还低”,小弟才疏学浅,不具备维护能力,而且代码量很庞大,修改起来非常耗时,而且容易出错。2、另外建一个类库,引用这个dll
但编译出来是两个dll,外部调用的时候,如果调用a.dll,还是可以直接操作底层的函数。请问各位高手,有没有其它好的解决方法?或者前两种方法可行,只是我操作方式有误?多谢指教
目前保护.net代码的方法通常有混淆和加密等。要想让别人看不见dll里面的方法,几乎是不可能的了。就算你混淆后又加密那方法名还是可见的。最主要的是将关键的代码隐藏或加密才有一定的保障。
呵呵,您批评的是,我承认,但项目时间紧迫,我没有太多的时间去阅读源代码,加以调整。我想也许有方法很简单就可以实现我要的功能,所以请教下个各位高手。如果没有的话,还是必须加以耐心去调整源代码的访问权限了。to geaim:
就算加了private修饰符,也可以用工具看见原方法名?如果是这样的话,那只有混淆了,但是混淆前,还是得把外部访问的问题解决了,望赐教。
这条明显不太可行,原来的public,就是为了类库或WEB中的其它类调用,全部弄成private,那不完蛋了