You can protect and implement licensing for any kind of .Net assembly. However, methods with the following constructs cannot be transformed in Code Protector:
- Generic methods or methods on generic types (see Generics support in Software Potential) for more details of Generics support).
- Non-static methods of a structure.
- Methods with “out” or “ref” parameters.
- Methods that invoke other methods with “out” or “ref” parameters.
- Methods that modify a method parameter, even if the parameter is defined as a “by value”.
- Methods with too many local variables or parameters (> 254).
- Methods that contain calls to
- Reflection.MethodInfo.GetCurrentMethod(), or
- Implicit and explicit cast operators
- Unsafe code – For example, in C#, methods that contain the keyword unsafe typically cannot be transformed.
- Autoproperty Initializers (in C# 6)
- Exception Filters (in C# 6)
- Methods that attempt to obtain a mutual-exclusion lock before executing a statement or code block, using either the
lockkeyword or the