C# Client Library
A C# Client Library for the AnalyzeRe REST API
AnalyzeRe.APIType Class Reference

Base class used by all types and resources. More...

Public Member Functions

virtual T ShallowCopy< T > ()
 Create a shallow copy of this object.

See also
ExtensionMethods.DeepCopy<T>

for a serializer-based copy method. More...

 

Protected Member Functions

virtual void AfterMembersCloned (APIType originalResource)
 Invoked following construction if the current instance has been created using a member-wise clone of some other instance. Override if your derived APIType class contains some members that should not be cloned. More...
 

Detailed Description

Base class used by all types and resources.

Definition at line 7 of file APIType.cs.

Inheritance diagram for AnalyzeRe.APIType:
AnalyzeRe.IAPIType AnalyzeRe.APIResource AnalyzeRe.APITypes.APIType_Polymorphic AnalyzeRe.APITypes.OptionsResponse AnalyzeRe.APITypes.Reference AnalyzeRe.APITypes.ServerError AnalyzeRe.CollectionResponseMeta AnalyzeRe.EventCatalog.Attribute AnalyzeRe.EventCatalog.Profile AnalyzeRe.ExchangeRates.ExchangeRateTable.CurrenciesEndpointResponse AnalyzeRe.ExchangeRates.ExchangeRateTable.CurrenciesEndpointResponse.CurrencyInformation AnalyzeRe.Fees.FeeReference AnalyzeRe.LargeDataUpload.StatusResponse AnalyzeRe.Layers.Nested.Sources AnalyzeRe.Layers.Policy AnalyzeRe.Layers.Reinstatement AnalyzeRe.LossSets.LossSetProfile AnalyzeRe.LossSets.TreatyLossSet.Treaty AnalyzeRe.Metrics.BackAllocations AnalyzeRe.Metrics.CoMetrics AnalyzeRe.Metrics.ConditionalDistributionMetrics AnalyzeRe.Metrics.Context AnalyzeRe.Metrics.ExceedanceProbability AnalyzeRe.Metrics.ReportingPeriod AnalyzeRe.Metrics.SimulationOptions AnalyzeRe.Metrics.TailDistributionMetrics AnalyzeRe.MonetaryUnit AnalyzeRe.Optimization.CandidateParameter AnalyzeRe.Optimization.CandidateResultsList AnalyzeRe.Optimization.DomainEntry AnalyzeRe.Optimization.OptimizationResult AnalyzeRe.Optimization.SensitivityAnalysis AnalyzeRe.Optimization.SensitivityAnalysis.LayerSensitivity AnalyzeRe.ProbabilityWindow

Member Function Documentation

virtual void AnalyzeRe.APIType.AfterMembersCloned ( APIType  originalResource)
inlineprotectedvirtual

Invoked following construction if the current instance has been created using a member-wise clone of some other instance. Override if your derived APIType class contains some members that should not be cloned.

Overriding implementations should be sure to invoke base.AfterMembersCloned().

A sane question for a code reviewer to ask might be: "Why not avoid copying those members in the first place?" The answer is that there is no framework-supported method of excluding members from a MemberwiseClone. The only officially supported solution is to not use the object.MemberwiseClone method at all and instead have each class implement it's own Copy method. In our case, most objects have no need to specialize their copy implementation (even though they could - the ShallowCopy<T> method is marked virtual). It's simpler to simply "correct" any special-case members after the fact, and requires less error-prone code than if the code were responsible for ensuring no members were missed in a copy. It's also faster than any reflection-based approach, even though such an approach could benefit from custom attributes meant to exclude certain members from copying.

Reimplemented in AnalyzeRe.APIResourceView.BaseAPIResourceView, AnalyzeRe.Optimization.OptimizationView, AnalyzeRe.Optimization.Candidate, AnalyzeRe.StaticSimulation, AnalyzeRe.Distributions.CustomDistribution, AnalyzeRe.LossSets.LossSet_WithData, and AnalyzeRe.APITypes.APIResource_WithDataEndpoint.

Definition at line 37 of file APIType.cs.

virtual T AnalyzeRe.APIType.ShallowCopy< T > ( )
inlinevirtual

Create a shallow copy of this object.

See also
ExtensionMethods.DeepCopy<T>

for a serializer-based copy method.

Returns
A shallow copy of this object.

If this object contains any members that reference the current object (this), the class should override this method to avoid cloning a reference to the old class.

Implements AnalyzeRe.IAPIType.

Type Constraints
T :IAPIType 

Definition at line 14 of file APIType.cs.


The documentation for this class was generated from the following file: