context: 
  //
  // This file was generated by the BinaryNotes compiler.
  // See http://bnotes.sourceforge.net 
  // Any modifications to this file will be lost upon recompilation of the source ASN.1. 
  //
  
  using System;
  using org.bn.attributes;
  using org.bn.attributes.constraints;
  using org.bn.coders;
  using org.bn.types;
  using org.bn;
  
  namespace MMS_ASN1_Model {
  
  
      [ASN1PreparedElement]
      [ASN1Choice ( Name = "AdditionalService_Request") ]
      public class AdditionalService_Request : IASN1PreparedElement {
                      
          
  	private VMDStop_Request vMDStop_ ;
          private bool  vMDStop_selected = false ;
          
                  
          
          [ASN1Element ( Name = "vMDStop", IsOptional =  false , HasTag =  true, Tag = 0 , HasDefaultValue =  false )  ]
      
          public VMDStop_Request VMDStop
          {
              get { return vMDStop_; }
              set { selectVMDStop(value); }
          }
          
                  
            
          
  	private VMDReset_Request vMDReset_ ;
          private bool  vMDReset_selected = false ;
          
                  
          
          [ASN1Element ( Name = "vMDReset", IsOptional =  false , HasTag =  true, Tag = 1 , HasDefaultValue =  false )  ]
      
          public VMDReset_Request VMDReset
          {
              get { return vMDReset_; }
              set { selectVMDReset(value); }
          }
          
                  
            
          
  	private Select_Request select_ ;
          private bool  select_selected = false ;
          
                  
          
          [ASN1Element ( Name = "select", IsOptional =  false , HasTag =  true, Tag = 2 , HasDefaultValue =  false )  ]
      
          public Select_Request Select
          {
              get { return select_; }
              set { selectSelect(value); }
          }
          
                  
            
          
  	private AlterProgramInvocationAttributes_Request alterPI_ ;
          private bool  alterPI_selected = false ;
          
                  
          
          [ASN1Element ( Name = "alterPI", IsOptional =  false , HasTag =  true, Tag = 3 , HasDefaultValue =  false )  ]
      
          public AlterProgramInvocationAttributes_Request AlterPI
          {
              get { return alterPI_; }
              set { selectAlterPI(value); }
          }
          
                  
            
          
  	private InitiateUnitControlLoad_Request initiateUCLoad_ ;
          private bool  initiateUCLoad_selected = false ;
          
                  
          
          [ASN1Element ( Name = "initiateUCLoad", IsOptional =  false , HasTag =  true, Tag = 4 , HasDefaultValue =  false )  ]
      
          public InitiateUnitControlLoad_Request InitiateUCLoad
          {
              get { return initiateUCLoad_; }
              set { selectInitiateUCLoad(value); }
          }
          
                  
            
          
  	private UnitControlLoadSegment_Request uCLoad_ ;
          private bool  uCLoad_selected = false ;
          
                  
          
          [ASN1Element ( Name = "uCLoad", IsOptional =  false , HasTag =  true, Tag = 5 , HasDefaultValue =  false )  ]
      
          public UnitControlLoadSegment_Request UCLoad
          {
              get { return uCLoad_; }
              set { selectUCLoad(value); }
          }
          
                  
            
          
  	private UnitControlUpload_Request uCUpload_ ;
          private bool  uCUpload_selected = false ;
          
                  
          
          [ASN1Element ( Name = "uCUpload", IsOptional =  false , HasTag =  true, Tag = 6 , HasDefaultValue =  false )  ]
      
          public UnitControlUpload_Request UCUpload
          {
              get { return uCUpload_; }
              set { selectUCUpload(value); }
          }
          
                  
            
          
  	private StartUnitControl_Request startUC_ ;
          private bool  startUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "startUC", IsOptional =  false , HasTag =  true, Tag = 7 , HasDefaultValue =  false )  ]
      
          public StartUnitControl_Request StartUC
          {
              get { return startUC_; }
              set { selectStartUC(value); }
          }
          
                  
            
          
  	private StopUnitControl_Request stopUC_ ;
          private bool  stopUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "stopUC", IsOptional =  false , HasTag =  true, Tag = 8 , HasDefaultValue =  false )  ]
      
          public StopUnitControl_Request StopUC
          {
              get { return stopUC_; }
              set { selectStopUC(value); }
          }
          
                  
            
          
  	private CreateUnitControl_Request createUC_ ;
          private bool  createUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "createUC", IsOptional =  false , HasTag =  true, Tag = 9 , HasDefaultValue =  false )  ]
      
          public CreateUnitControl_Request CreateUC
          {
              get { return createUC_; }
              set { selectCreateUC(value); }
          }
          
                  
            
          
  	private AddToUnitControl_Request addToUC_ ;
          private bool  addToUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "addToUC", IsOptional =  false , HasTag =  true, Tag = 10 , HasDefaultValue =  false )  ]
      
          public AddToUnitControl_Request AddToUC
          {
              get { return addToUC_; }
              set { selectAddToUC(value); }
          }
          
                  
            
          
  	private RemoveFromUnitControl_Request removeFromUC_ ;
          private bool  removeFromUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "removeFromUC", IsOptional =  false , HasTag =  true, Tag = 11 , HasDefaultValue =  false )  ]
      
          public RemoveFromUnitControl_Request RemoveFromUC
          {
              get { return removeFromUC_; }
              set { selectRemoveFromUC(value); }
          }
          
                  
            
          
  	private GetUnitControlAttributes_Request getUCAttributes_ ;
          private bool  getUCAttributes_selected = false ;
          
                  
          
          [ASN1Element ( Name = "getUCAttributes", IsOptional =  false , HasTag =  true, Tag = 12 , HasDefaultValue =  false )  ]
      
          public GetUnitControlAttributes_Request GetUCAttributes
          {
              get { return getUCAttributes_; }
              set { selectGetUCAttributes(value); }
          }
          
                  
            
          
  	private LoadUnitControlFromFile_Request loadUCFromFile_ ;
          private bool  loadUCFromFile_selected = false ;
          
                  
          
          [ASN1Element ( Name = "loadUCFromFile", IsOptional =  false , HasTag =  true, Tag = 13 , HasDefaultValue =  false )  ]
      
          public LoadUnitControlFromFile_Request LoadUCFromFile
          {
              get { return loadUCFromFile_; }
              set { selectLoadUCFromFile(value); }
          }
          
                  
            
          
  	private StoreUnitControlToFile_Request storeUCToFile_ ;
          private bool  storeUCToFile_selected = false ;
          
                  
          
          [ASN1Element ( Name = "storeUCToFile", IsOptional =  false , HasTag =  true, Tag = 14 , HasDefaultValue =  false )  ]
      
          public StoreUnitControlToFile_Request StoreUCToFile
          {
              get { return storeUCToFile_; }
              set { selectStoreUCToFile(value); }
          }
          
                  
            
          
  	private DeleteUnitControl_Request deleteUC_ ;
          private bool  deleteUC_selected = false ;
          
                  
          
          [ASN1Element ( Name = "deleteUC", IsOptional =  false , HasTag =  true, Tag = 15 , HasDefaultValue =  false )  ]
      
          public DeleteUnitControl_Request DeleteUC
          {
              get { return deleteUC_; }
              set { selectDeleteUC(value); }
          }
          
                  
            
          
  	private DefineEventConditionList_Request defineECL_ ;
          private bool  defineECL_selected = false ;
          
                  
          
          [ASN1Element ( Name = "defineECL", IsOptional =  false , HasTag =  true, Tag = 16 , HasDefaultValue =  false )  ]
      
          public DefineEventConditionList_Request DefineECL
          {
              get { return defineECL_; }
              set { selectDefineECL(value); }
          }
          
                  
            
          
  	private DeleteEventConditionList_Request deleteECL_ ;
          private bool  deleteECL_selected = false ;
          
                  
          
          [ASN1Element ( Name = "deleteECL", IsOptional =  false , HasTag =  true, Tag = 17 , HasDefaultValue =  false )  ]
      
          public DeleteEventConditionList_Request DeleteECL
          {
              get { return deleteECL_; }
              set { selectDeleteECL(value); }
          }
          
                  
            
          
  	private AddEventConditionListReference_Request addECLReference_ ;
          private bool  addECLReference_selected = false ;
          
                  
          
          [ASN1Element ( Name = "addECLReference", IsOptional =  false , HasTag =  true, Tag = 18 , HasDefaultValue =  false )  ]
      
          public AddEventConditionListReference_Request AddECLReference
          {
              get { return addECLReference_; }
              set { selectAddECLReference(value); }
          }
          
                  
            
          
  	private RemoveEventConditionListReference_Request removeECLReference_ ;
          private bool  removeECLReference_selected = false ;
          
                  
          
          [ASN1Element ( Name = "removeECLReference", IsOptional =  false , HasTag =  true, Tag = 19 , HasDefaultValue =  false )  ]
      
          public RemoveEventConditionListReference_Request RemoveECLReference
          {
              get { return removeECLReference_; }
  
gt:             set { selectRemoveECLReference(value); }