private void DisposeNativeResources() { if (_morphoAttributePairsBasePtr != null) { _morphoAttributePairsGCHandle.Free(); _morphoAttributePairsBasePtr = null; } }
public MorphoAttributeList_v1() { var morphoAttributes = new List <MorphoAttributePair>(100) { /// первое new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.First), /// второе new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.Second), /// третье new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.Third), /// именительный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Nominative), /// родительный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Genitive), /// дательный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Dative), /// винительный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Accusative), /// творительный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Instrumental), /// предложный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Prepositional), /// местный new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Locative), /// любой new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Anycase), /// единственное new MorphoAttributePair(MorphoAttributeGroupEnum.Number, MorphoAttributeEnum.Singular), /// множественное new MorphoAttributePair(MorphoAttributeGroupEnum.Number, MorphoAttributeEnum.Plural), /// женский new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Feminine), /// мужской new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Masculine), /// средний new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Neuter), /// общий new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.General), /// одушевленный new MorphoAttributePair(MorphoAttributeGroupEnum.Animateness, MorphoAttributeEnum.Animate), /// неодушевленный new MorphoAttributePair(MorphoAttributeGroupEnum.Animateness, MorphoAttributeEnum.Inanimate), /// имя собственное new MorphoAttributePair(MorphoAttributeGroupEnum.NounType, MorphoAttributeEnum.Proper), /// имя нарицательное new MorphoAttributePair(MorphoAttributeGroupEnum.NounType, MorphoAttributeEnum.Common), /// будущее new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Future), /// прошедшее new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Past), /// настоящее new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Present), /// будущее в прошедшем new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.FutureInThePast), /// повелительное new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Imperative), /// изъявительное new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Indicative), /// сослагательное new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Subjunctive), /// личный глагол new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Personal), /// безличный глагол new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Impersonal), /// деепричастие new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Gerund), /// причастие new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Participle), /// действительный new MorphoAttributePair(MorphoAttributeGroupEnum.Voice, MorphoAttributeEnum.Active), /// страдательный new MorphoAttributePair(MorphoAttributeGroupEnum.Voice, MorphoAttributeEnum.Passive), /// переходный new MorphoAttributePair(MorphoAttributeGroupEnum.VerbTransitivity, MorphoAttributeEnum.Transitive), /// непереходный new MorphoAttributePair(MorphoAttributeGroupEnum.VerbTransitivity, MorphoAttributeEnum.Intransitive), /// несовершенная new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.Imperfective), /// совершенная new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.Perfective), /// совершенная и несовершенная new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.PerfImPerf), /// порядковое new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Ordinal), /// количественное new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Cardinal), /// собирательное new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Collective), /// краткая new MorphoAttributePair(MorphoAttributeGroupEnum.AdjectForm, MorphoAttributeEnum.Short), /// сравнительная new MorphoAttributePair(MorphoAttributeGroupEnum.DegreeOfComparison, MorphoAttributeEnum.Comparative), /// превосходная new MorphoAttributePair(MorphoAttributeGroupEnum.DegreeOfComparison, MorphoAttributeEnum.Superlative), /// сочинительный new MorphoAttributePair(MorphoAttributeGroupEnum.ConjunctionType, MorphoAttributeEnum.Subordinating), /// подчинительный new MorphoAttributePair(MorphoAttributeGroupEnum.ConjunctionType, MorphoAttributeEnum.Coordinating), /// вопросительное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Interrogative), /// относительное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Relative), /// относительное и вопросительное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.InterrogativeRelative), /// отрицательное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Negative), /// возвратное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Reflexive), /// неопределенное 1 new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indefinitive1), /// неопределенное 2 new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indefinitive2), /// указательное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indicative), /// притяжательное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Possessive), /// личное new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Personal), /// определенный new MorphoAttributePair(MorphoAttributeGroupEnum.ArticleType, MorphoAttributeEnum.Definite), /// неопределенный new MorphoAttributePair(MorphoAttributeGroupEnum.ArticleType, MorphoAttributeEnum.Indefinite), /// инфинитив new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.Infinitive), /// деепричастие new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.AdverbialParticiple), /// вспомогательный глагол new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.AuxiliaryVerb), /// причастие new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.Participle), /// относительное и вопросительное new MorphoAttributePair(MorphoAttributeGroupEnum.AdverbType, MorphoAttributeEnum.InterrogativeRelative) }; _morphoAttributePairs = morphoAttributes.ToArray(); _morphoAttributePairsLength_Minus1 = _morphoAttributePairs.Length - 1; _morphoAttributePairsGCHandle = GCHandle.Alloc(_morphoAttributePairs, GCHandleType.Pinned); _morphoAttributePairsBasePtr = (MorphoAttributePair *)_morphoAttributePairsGCHandle.AddrOfPinnedObject().ToPointer(); }