code: def handle_signature(self, sig, signode):
          
          try:
              sig = self.parse_signature(sig.strip())
          except ValueError:
              self.env.warn(self.env.docname,
                            'Parsing signature failed: "{}"'.format(sig),
                            self.lineno)
              raise
  
          prefix = self.env.ref_context.get('dn:prefix', None)
  
          if prefix is not None:
              sig.prefix = prefix
  
          signode['object'] = sig.member
          signode['prefix'] = sig.prefix
          signode['fullname'] = sig.full_name()
  
          # Prefix modifiers
          if self.display_prefix:
              signode += addnodes.desc_annotation(self.display_prefix,
                                                  self.display_prefix)
          for prefix in ['public', 'protected', 'static']:
              if prefix in self.options:
                  signode += addnodes.desc_annotation(prefix + ' ',
                                                      prefix + ' ')
  
          # Show prefix only on shorter declarations
          if sig.prefix is not None and not self.has_arguments:
              signode += addnodes.desc_addname(sig.prefix + '.', sig.prefix + '.')
  
          signode += addnodes.desc_name(sig.member, sig.member)
          if self.has_arguments:
              if not sig.arguments:
                  signode += addnodes.desc_parameterlist()
              else:
                  # TODO replace this
                  _pseudo_parse_arglist(signode, ', '.join(sig.arguments))
  
          if isinstance(self, DotNetObjectNested):
              return sig.full_name(), sig.full_name()
          return sig.full_name(), sig.prefix
docs: Parses out pieces from construct signatures
  
          Parses out prefix and argument list from construct definition. This is
          assuming that the .NET languages this will support will be in a common
          format, such as::
  
              Namespace.Class.method(argument, argument, ...)
  
          The namespace and class will be determined by the nesting of rST
          directives.
  
          Returns
              Altered :py:data:`signode` with attributes corrected for rST
              nesting/etc