[ https://issues.apache.org/jira/browse/CMIS-936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Florian Müller reassigned CMIS-936: ----------------------------------- Assignee: Florian Müller > The public API should be declared virtual > ----------------------------------------- > > Key: CMIS-936 > URL: https://issues.apache.org/jira/browse/CMIS-936 > Project: Chemistry > Issue Type: Improvement > Components: dotcmis > Affects Versions: DotCMIS 0.6, DotCMIS 0.7 > Environment: Windows 7, DotNet 3.5 > Reporter: Patrice Collardez > Assignee: Florian Müller > Attachments: virtual-public-api.patch > > > The public API of DotCMIS is not completely declared virtual, and it prevents > the polymorphism to work as expected, especially when creating a new > ObjectFactory and specialized objects. > Long explanation: > With Java, every method is implicitly declared virtual, therefore overriding > a method in a subclass is as simple as a redeclaration and the polymorphism > works as intended whatever the cast of the subclass to any of its parent > class or interface. > With C#, every method is not declared virtual, therefore redeclaring a method > in a subclass does not make the polymorphism works: the first declaration of > the method is used considering the cast level in the inheritance graph. > In order to have the same behavior with C# as the one we have with Java, > every method should be declared "virtual" and every redeclaration should be > declared "override". -- This message was sent by Atlassian JIRA (v6.3.4#6332)