Esempio n. 1
0
        private bool AddOrUpdateIndexer(string name, bool isGet, IMethod orig)
        {
            var holder = _type as IHasIndexers;

            if (holder == null)
            {
                return(false);
            }
            var indx = holder.Indexers.FirstOrDefault(p => p.Name == name);

            if (indx == null)
            {
                holder.Indexers.Add(indx = new IndexerImpl(name));
            }
            indx.Visibility = orig.Visibility;
            if (isGet)
            {
                indx.Type   = orig.ReturnType;
                indx.Getter = "";
            }
            else
            {
                indx.Type   = orig.Parameters.Last().Type;
                indx.Setter = "";
            }
            indx.Parameters.Clear();
            foreach (var parm in orig.Parameters.Take(orig.Parameters.Count - (isGet ? 0 : 1)))
            {
                var myParm = new ParameterImpl(parm.Name, parm.Type);
                indx.Parameters.Add(myParm);
            }
            return(true);
        }
Esempio n. 2
0
 public IndexerTest(ITestOutputHelper testOutputHelper)
 {
     LogSettings.RegisterDefaultLogger <XUnitLogger>(LogLevels.Verbose, testOutputHelper);
     _indexerTest = _indexerImpl = new IndexerImpl();
 }