public IEnumerable <Namespace> GetNamespacesFromProject(Project project) { IEnumerable <Document> documents = project.Documents .Where(doc => Enumerable.FirstOrDefault <string>(doc.Folders) != "Properties" && !doc.FilePath.EndsWith("AssemblyAttributes.cs") ); var documentContents = documents.Select(document => new DocumentContent(document)); var allTypeMembers = documentContents.SelectMany(content => MemberExtensions.GetBaseTypeMembers(content.Syntax).Select(syntax => new NamespaceMember(content, syntax))); var membersByFullName = allTypeMembers.GroupBy(member => member.GetFullName()).OrderBy(pair => pair.Key).ToArray(); var uniqueNamespaces = GetCommonNamespaces(membersByFullName.Select(memberGroup => memberGroup.Key).ToArray()); return(uniqueNamespaces.Select(namespaceName => new Namespace() { Name = namespaceName, WritingAction = (textWriter) => { var memberGroups = FilterNamespaceMember(membersByFullName, namespaceName).ToArray(); this.WriteNamespaceMemberGroups(memberGroups, textWriter); this.WriteFooter(memberGroups.Select(g => g.First()), textWriter); } })); }
private static IQualifiedMember SourceMemberFor(Member rootSourceMember, LambdaExpression childMemberExpression) { return((childMemberExpression == null) ? QualifiedMember.From(rootSourceMember, MapperContext.WithDefaultNamingSettings) : MemberExtensions.CreateMember( childMemberExpression, Member.RootSource, MemberFinder.GetSourceMembers, MapperContext.WithDefaultNamingSettings)); }
private static Member GetMember(Expression expression) { if (ReflectionHelper.IsMethodExpression(expression)) { return(MemberExtensions.ToMember(((MethodCallExpression)expression).Method)); } else { return(MemberExtensions.ToMember(ReflectionHelper.GetMemberExpression(expression).Member)); } }
public void CreateGetter_StronglyTyped_ValueType() { var testObject = new TestStruct { TestValue = 12 }; GetterDelegate <TestStruct, int> getter = MemberExtensions.CreateGetter <TestStruct, int>(TestStructTestPropertyPropertyInfo); Assert.AreEqual(12, getter(testObject)); getter = MemberExtensions.CreateGetter <TestStruct, int>(TestStructStaticTestPropertyPropertyInfo); TestStruct.TestStaticValue = 25; Assert.AreEqual(25, getter(default));
public void TryCreateGetter_StronglyTyped() { Assert.IsTrue(MemberExtensions.TryCreateGetter(TestStructTestPropertyPropertyInfo, out GetterDelegate <TestStruct, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypePublicGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypePublicGetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypePublicPrivateGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypePublicGetPrivateSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsFalse(MemberExtensions.TryCreateGetter(PublicValueTypePublicSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypeStaticPublicGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypeInternalGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypeProtectedGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); Assert.IsTrue(MemberExtensions.TryCreateGetter(PublicValueTypePrivateGetSetPropertyPropertyInfo, out GetterDelegate <PublicValueTypeTestClass, int> _)); }