Skip to content

Loading…

In class AssemblyTypeSource, use of Assembly.GetTypes is breaking change #185

Open
cbp123 opened this Issue · 5 comments

3 participants

@cbp123

In FluentNH 1.2 and prior the class AssemblyTypeSource implemented the ITypeSource.GetTypes method using Assembly.GetExportedTypes. The new implementation in FluentNH uses Assembly.GetTypes.

GetExportedTypes only requires dependent DLLs to be in the application bin directory when types from that DLL are exposed publicly, where GetTypes requires all dependent DLLs to be in the appication's bin directory, even if they are only used privately.

This change in behaviour can be annoying. I'm not sure if it was intended or if there is a work around.

@chester89
Collaborator

I think the default behaviour should be GetExportedTypes. And if different behaviour is needed, may be Fluent should provide one or two shortcuts (like GetTypes mentioned above). Any thoughts?

@cbp123

Yes I think .GetTypes would be unusual. Perhaps an overload to the FluentMappings.AddFromAssemblyOf() methods would have been better, e.g. FluentMappings.AddFromAssemblyOf(getNonPublicTypes: true)

@chester89
Collaborator

If I'm not too busy this week, I'll do it

@jagregory
Owner
@chester89
Collaborator

I see. In that case, I think that adding a line in docs will do for now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.