Just a thought came, many time I disassembled dlls to see the logic written, however is there any kind of security or restriction i can enforce on my dll something like creating signed dll, would it stop from getting disassembled?
No. Signing provides some extra information - it doesn't remove any information. All it means is that a client can verify that the code was signed by the owner of the key. (For example, you may have a list of the keys from trusted organizations, and only run code that was signed with any of those keys.)
See more on this question at Stackoverflow