Esempio n. 1
0
        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);
                }
            }));
        }
Esempio n. 2
0
 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> _));
        }