I have portable class library with ReflectionHelper class containing a handful set of convenient methods to perform reflection related operations.
I marked many of these methods as pure but later in another peace of code I noticed a warning that GetTypeInfo()
is not pure itself. I undersand that for new reflection api calling GetTypeInfo()
results in loading the assembly, containing the type and the absense of this assembly leads to exception.
And now I'm confused with the definition of purity from PureAttribute documentation at MSDN:
Indicates that a type or method is pure, that is, it does not make any visible state changes.
What change can be dubbed as visible? Do assembly loading falls under this category?